<!DOCTYPE html>
<!--[if lte IE 8]> <html class="lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<!--
Made in Twine 1.4 (running on Windows 7)

Sugarcane is based on:

TiddlyWiki 1.2.39 by Jeremy Ruston, (jeremy [at] osmosoft [dot] com)

Published under a BSD open source license

Copyright (c) Osmosoft Limited 2005

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.

Neither the name of the Osmosoft Limited nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
-->
<title>Sugarcane</title>
<script title="engine">
(function(){

function clone(a){var b={};for(var property in a){if(typeof a[property]=="object"){try{b[property]=JSON.parse(JSON.stringify(a[property]));continue}catch(e){}}b[property]=a[property]}return b}function insertElement(a,d,f,c,e){var b=document.createElement(d);if(f){b.id=f}if(c){b.className=c}if(e){insertText(b,e)}if(a){a.appendChild(b)}return b}function insertText(a,b){return a.appendChild(document.createTextNode(b))}function removeChildren(a){while(a.hasChildNodes()){a.removeChild(a.firstChild)}}function setPageElement(c,b,a){var place;if(place=(typeof c=="string"?document.getElementById(c):c)){removeChildren(place);if(tale.has(b)){new Wikifier(place,tale.get(b).text)}else{new Wikifier(place,a)}}}function addStyle(b){if(document.createStyleSheet){document.getElementsByTagName("head")[0].insertAdjacentHTML("beforeEnd","&nbsp;<style>"+b+"</style>")}else{var a=document.createElement("style");a.appendChild(document.createTextNode(b));document.getElementsByTagName("head")[0].appendChild(a)}}function alterCSS(text){var imgPassages=tale.lookup("tags","Twine.image");text=text.replace(/\/\*(?:[^\*]|\*(?!\/))*\*\//g,"");return text.replace(new RegExp(Wikifier.imageFormatter.lookahead,"gim"),function(m,p1,p2,p3,src){for(var i=0;i<imgPassages.length;i++){if(imgPassages[i].title==src){src=imgPassages[i].text;break}}return"url("+src+");"})}function setTransitionCSS(styleText){styleText=alterCSS(styleText);var style=document.getElementById("transitionCSS");style.styleSheet?(style.styleSheet.cssText=styleText):(style.innerHTML=styleText)}function throwError(a,b,tooltip){var elem=insertElement(a,"span",null,"marked",b);tooltip&&elem.setAttribute("title",tooltip)}Math.easeInOut=function(a){return(1-((Math.cos(a*Math.PI)+1)/2))};String.prototype.readMacroParams=function(keepquotes){var exec,re=/(?:\s*)(?:(?:"([^"]*)")|(?:'([^']*)')|(?:\[\[((?:[^\]]|\](?!\]))*)\]\])|([^"'\s]\S*))/mg,params=[];do{var val;exec=re.exec(this);if(exec){if(exec[1]){val=exec[1];keepquotes&&(val='"'+val+'"')}else{if(exec[2]){val=exec[2];keepquotes&&(val="'"+val+"'")}else{if(exec[3]){val=exec[3];keepquotes&&(val='"'+val.replace('"','\\"')+'"')}else{if(exec[4]){val=exec[4]}}}}val&&params.push(val)}}while(exec);return params};String.prototype.readBracketedList=function(){var c,b="\\[\\[([^\\]]+)\\]\\]",a="[^\\s$]+",e="(?:"+b+")|("+a+")",d=new RegExp(e,"mg"),f=[];do{c=d.exec(this);if(c){if(c[1]){f.push(c[1])}else{if(c[2]){f.push(c[2])}}}}while(c);return(f)};String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s\s*/,"").replace(/\s\s*$/,"")});String.prototype.unDash=function(){var s=this.split("-");if(s.length>1){for(var t=1;t<s.length;t++){s[t]=s[t].substr(0,1).toUpperCase()+s[t].substr(1)}}return s.join("")};Array.prototype.indexOf||(Array.prototype.indexOf=function(b,d){d=(d==null)?0:d;var a=this.length;for(var c=d;c<a;c++){if(this[c]==b){return c}}return -1});(function(){function t(t){this.message=t}var e=window,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";t.prototype=Error(),t.prototype.name="InvalidCharacterError",e.btoa||(e.btoa=function(e){for(var o,n,a=0,i=r,c="";e.charAt(0|a)||(i="=",a%1);c+=i.charAt(63&o>>8-8*(a%1))){if(n=e.charCodeAt(a+=0.75),n>255){throw new t()}o=o<<8|n}return c}),e.atob||(e.atob=function(e){if(e=e.replace(/=+$/,""),1==e.length%4){throw new t()}for(var o,n,a=0,i=0,c="";n=e.charAt(i++);~n&&(o=a%4?64*o+n:n,a++%4)?c+=String.fromCharCode(255&o>>(6&-2*a)):0){n=r.indexOf(n)}return c})})();var hasTransition="transition" in document.documentElement.style||"-webkit-transition" in document.documentElement.style;function fade(f,c){var h;var e=f.cloneNode(true);var g=(c.fade=="in")?1:-1;f.parentNode.replaceChild(e,f);if(c.fade=="in"){h=0;e.style.visibility="visible"}else{h=1}b(e,h);var a=window.setInterval(d,25);function d(){h+=0.05*g;b(e,Math.easeInOut(h));if(((g==1)&&(h>=1))||((g==-1)&&(h<=0))){f.style.visibility=(c.fade=="in")?"visible":"hidden";if(e.parentNode){e.parentNode.replaceChild(f,e)}window.clearInterval(a);if(c.onComplete){c.onComplete.call(f)}}}function b(k,j){var l=Math.floor(j*100);k.style.zoom=1;k.style.filter="alpha(opacity="+l+")";k.style.opacity=j}}var scrollWindowInterval;function scrollWindowTo(e){var d=window.scrollY?window.scrollY:document.body.scrollTop;var g=k(e);var c=Math.abs(d-g);var b=0;var j=(d>g)?-1:1;scrollWindowInterval=window.setInterval(h,25);function h(){b+=0.1;window.scrollTo(0,d+j*(c*Math.easeInOut(b)));if(b>=1){window.clearInterval(scrollWindowInterval)}}function k(o){var p=a(o);var q=p+o.offsetHeight;var l=window.scrollY?window.scrollY:document.body.scrollTop;var m=window.innerHeight?window.innerHeight:document.body.clientHeight;var n=l+m;if(p<l){return p}else{if(q>n){if(o.offsetHeight<m){return(p-(m-o.offsetHeight)+20)}else{return p}}else{return p}}}function a(l){var m=0;while(l.offsetParent){m+=l.offsetTop;l=l.offsetParent}return m}}function delta(old,neu){var vars,ret={};if(old&&neu){for(vars in neu){if(neu[vars]!==old[vars]){ret[vars]=neu[vars]}}}return ret}function History(){this.history=[{passage:null,variables:{},hash:null}]}History.prototype.encodeHistory=function(b,noVars){var ret=".",vars,type,hist=this.history[b],d=this.history[b+1]?delta(this.history[b+1].variables,hist.variables):hist.variables;function vtob(str){try{return window.btoa(unescape(encodeURIComponent(JSON.stringify(str))))}catch(e){return"0"}}if(!hist.passage||hist.passage.id==undefined){return""}ret+=hist.passage.id.toString(36);if(noVars){return ret}for(vars in d){type=typeof d[vars];if(type!="function"&&type!="undefined"){ret+="$"+vtob(vars)+","+vtob(d[vars])}}for(vars in hist.linkVars){type=typeof hist.linkVars[vars];if(type!="function"&&type!="undefined"){ret+="["+vtob(vars)+","+vtob(hist.linkVars[vars])}}return ret};History.prototype.decodeHistory=function(str,prev){var name,splits,variable,c,d,ret={variables:prev.variables||{}},match=/([a-z0-9]+)((?:\$[A-Za-z0-9\+\/=]+,[A-Za-z0-9\+\/=]+)*)((?:\[[A-Za-z0-9\+\/=]+,[A-Za-z0-9\+\/=]+)*)/g.exec(str);function btov(str){try{return JSON.parse(decodeURIComponent(escape(window.atob(str))))}catch(e){return 0}}if(match){name=parseInt(match[1],36);if(!tale.has(name)){return false}if(match[2]){ret.variables||(ret.variables={});splits=match[2].split("$");for(c=0;c<splits.length;c++){variable=splits[c].split(",");d=btov(variable[0]);if(d){ret.variables[d]=btov(variable[1])}}}if(match[3]){ret.linkVars||(ret.linkVars={});splits=match[3].split("[");for(c=0;c<splits.length;c++){variable=splits[c].split(",");d=btov(variable[0]);if(d){ret.linkVars[d]=btov(variable[1])}}}ret.passage=tale.get(name);return ret}};History.prototype.save=function(c){var hist,b,a="";for(b=this.history.length-1;b>=0;b--){hist=this.history[b];if(!hist){break}a+=this.encodeHistory(b)}return"#"+a};History.prototype.restore=function(){var a,b,c,vars;try{if(testplay){this.display(testplay,null,"quietly");return true}if(!window.location.hash||(window.location.hash=="#")){return false}if(window.location.hash.substr(0,2)=="#!"){c=window.location.hash.substr(2).split("_").join(" ");this.display(c,null,"quietly");return true}a=window.location.hash.replace("#","").split(".");for(b=0;b<a.length;b++){vars=this.decodeHistory(a[b],vars||{});if(vars){if(b==a.length-1){vars.variables=this.history[0].variables;for(c in this.history[0].linkVars){vars.variables[c]=this.history[0].linkVars[c]}this.history.unshift(vars);this.display(vars.passage.title,null,"back")}else{this.history.unshift(vars)}}}return true}catch(d){return false}};var version={major:4,minor:0,revision:0,date:new Date("November 28, 2013"),extensions:{}};var testplay,tale,state,prerender={},postrender={},macros=window.macros={};version.extensions.displayMacro={major:2,minor:0,revision:0};macros.display={parameters:[],handler:function(place,macroName,params,parser){var t,j,output,oldDisplayParams,name=parser.fullArgs();if(macroName!="display"){output=macroName;params=name.readMacroParams(true);try{for(j=0;j<params.length;j++){params[j]=eval(Wikifier.parse(params[j]))}}catch(e){throwError(place,"<<"+macroName+" "+name+">> bad argument: "+params[j],parser.fullMatch());return}}else{try{output=eval(name)}catch(e){if(tale.get(name).id){output=name}else{throwError(place,"<<"+macroName+">> bad expression: "+e.message,parser.fullMatch());return}}}t=tale.get(output+"");if(!output){throwError(place,'"'+name+'" did not evaluate to a passage name',parser.fullMatch())}else{if(t.id===undefined){throwError(place,'The "'+output+'" passage does not exist',parser.fullMatch())}else{oldDisplayParams=this.parameters;this.parameters=params;if(t.tags.indexOf("script")>-1){scriptEval(t)}else{new Wikifier(place,tale.get(output+"").processText())}this.parameters=oldDisplayParams}}}};version.extensions.actionsMacro={major:1,minor:2,revision:0};macros.actions={handler:function(a,f,g){var v=state.history[0].variables,e=insertElement(a,"ul");if(!v["actions clicked"]){v["actions clicked"]={}}for(var b=0;b<g.length;b++){if(v["actions clicked"][g[b]]){continue}var d=insertElement(e,"li");var c=Wikifier.createInternalLink(d,g[b],(function(link){return function(){state.history[0].variables["actions clicked"][link]=true}}(g[b])));insertText(c,g[b])}}};version.extensions.printMacro={major:1,minor:1,revision:1};macros.print={handler:function(place,macroName,params,parser){try{var args=parser.fullArgs(macroName!="print"),output=eval(args);if(output!=null&&(typeof output!="number"||!isNaN(output))){new Wikifier(place,output.toString())}}catch(e){throwError(place,"<<print>> bad expression: "+e.message,parser.fullMatch())}}};version.extensions.setMacro={major:1,minor:1,revision:0};macros.set={handler:function(a,b,c,parser){macros.set.run(a,parser.fullArgs(),parser)},run:function(a,expression,parser){try{return eval(Wikifier.parse(expression))}catch(e){throwError(a,"bad expression: "+e.message,parser?parser.fullMatch():expression)}}};version.extensions.ifMacros={major:2,minor:0,revision:0};macros["if"]={handler:function(place,macroName,params,parser){var conditions=[],clauses=[],srcOffset=parser.source.indexOf(">>",parser.matchStart)+2,src=parser.source.slice(srcOffset),endPos=-1,currentCond=parser.fullArgs(),currentClause="",t=0,nesting=0;for(var i=0;i<src.length;i++){if(src.substr(i,9)=="<<endif>>"){nesting--;if(nesting<0){endPos=srcOffset+i+9;conditions.push(currentCond.trim());clauses.push(currentClause);break}}if((src.substr(i,6)=="<<else")&&!nesting){conditions.push(currentCond.trim());clauses.push(currentClause);currentClause="";t=src.indexOf(">>",i+6);if(src.substr(i+6,4)==" if "||src.substr(i+6,3)=="if "){currentCond=Wikifier.parse(src.slice(i+9,t))}else{currentCond="true"}i=t+2}if(src.substr(i,5)=="<<if "){nesting++}currentClause+=src.charAt(i)}try{if(endPos!=-1){parser.nextMatch=endPos;for(i=0;i<clauses.length;i++){if(eval(conditions[i])){new Wikifier(place,clauses[i]);break}}}else{throwError(place,"can't find matching endif",parser.fullMatch())}}catch(e){throwError(place,"<<if>> bad condition: "+e.message,!i?parser.fullMatch():"<<else if "+conditions[i]+">>")}}};macros["else"]=macros.elseif=macros.endif={handler:function(){}};version.extensions.rememberMacro={major:2,minor:0,revision:0};macros.remember={handler:function(place,macroName,params,parser){var variable,value,re,match,statement=params.join(" ");macros.set.run(place,parser.fullArgs());if(!window.localStorage){throwError(place,"<<remember>> can't be used "+(window.location.protocol=="file:"?" by local HTML files ":"")+" in this browser.");return}re=new RegExp(Wikifier.textPrimitives.variable,"g");while(match=re.exec(statement)){variable=match[1];value=state.history[0].variables[variable];try{value=JSON.stringify(value)}catch(e){throwError(place,"can't remember $"+variable+" ("+(typeof value)+")",parser.fullMatch());return}window.localStorage[this.prefix+variable]=value}},init:function(){var i,variable,value;if(tale.has("StoryTitle")){this.prefix="Twine."+tale.get("StoryTitle").text+"."}else{this.prefix="Twine.Untitled Story."}for(i in window.localStorage){if(i.indexOf(this.prefix)==0){variable=i.substr(this.prefix.length);value=window.localStorage[i];try{value=JSON.parse(value);state.history[0].variables[variable]=value}catch(e){}}}},expire:null,prefix:null};version.extensions.forgetMacro={major:1,minor:0,revision:0};macros.forget={handler:function(place,macroName,params){var re,match,variable,statement=params.join(" ");re=new RegExp(Wikifier.textPrimitives.variable,"g");while(match=re.exec(statement)){variable=match[1]+"";delete state.history[0].variables[variable];delete window.localStorage[macros.remember.prefix+variable]}}};version.extensions.SilentlyMacro={major:1,minor:1,revision:0};macros.nobr=macros.silently={handler:function(place,macroName,f,parser){var i,h=insertElement(null,"div"),k=parser.source.indexOf(">>",parser.matchStart)+2,a=parser.source.slice(k),d=-1,c="",l=0;for(i=0;i<a.length;i++){if(a.substr(i,15)=="<<end"+macroName+">>"){if(l==0){d=k+i+15;break}else{l--}}else{if(a.substr(i,12)=="<<"+macroName+">>"){l++}}if(macroName=="nobr"&&a.charAt(i)=="\n"){c+="\u200c"}else{c+=a.charAt(i)}}if(d!=-1){new Wikifier(macroName=="nobr"?place:h,c);parser.nextMatch=d}else{throwError(place,"can't find matching end"+macroName,parser.fullMatch())}}};macros.endsilently={handler:function(){}};version.extensions.choiceMacro={major:2,minor:0,revision:0};macros.choice={handler:function(A,C,D,parser){var link,id,match,temp,text=D[1]||D[0].split("|")[0],clicked=state.history[0].variables["choice clicked"]||(state.history[0].variables["choice clicked"]={}),passage=A;while(passage&&!~passage.className.indexOf("passage")){passage=passage.parentNode}id=(passage&&passage.id.replace(/\|[^\]]*$/,"")+"|"+text);if(id&&clicked[id]){insertElement(A,"span",null,"disabled",text)}else{match=new RegExp(Wikifier.linkFormatter.lookahead).exec(parser.fullArgs());if(match){temp=document.createElement("p");new Wikifier(temp,parser.fullArgs());link=temp.firstChild;A.appendChild(link)}else{link=Wikifier.createInternalLink(A,D[0]);setPageElement(link,null,text)}link.onclick=(function(link,onclick){return function(){onclick&&onclick();clicked[id]=true;link.outerHTML="<span class=disabled>"+link.innerHTML+"</span>"}}(link,link.onclick));link.className+=" "+C}}};version.extensions.backMacro={major:2,minor:0,revision:0};macros.back={labeltext:"&#171; back",handler:function(a,b,e){var labelParam,c,el,labeltouse=this.labeltext,steps=1,stepsParam=e.indexOf("steps"),stepsParam2="";if(stepsParam>0){stepsParam2=e[stepsParam-1];if(stepsParam2[0]=="$"){try{stepsParam2=eval(Wikifier.parse(stepsParam2))}catch(r){throwError(a,b+"Macro bad expression: "+r.message);return}}steps=+stepsParam2;if(steps>=state.history.length-1){steps=state.history.length-2}e.splice(stepsParam-1,2)}labelParam=e.indexOf("label");if(labelParam==-1){labelParam=e.indexOf("labeldefault")}if(labelParam>-1){if(!e[labelParam+1]){throwError(a,e[labelParam]+"keyword needs an additional label parameter");return}labeltouse=e[labelParam+1];if(e[labelParam]=="labeldefault"){this.labeltext=labeltouse}e.splice(labelParam,2)}if(stepsParam<=0){if(e[0]){if(e[0].charAt(0)=="$"){try{e=eval(Wikifier.parse(e[0]))}catch(r){throwError(a,"<<"+b+">> bad expression: "+r.message);return}}else{e=e[0]}if(tale.get(e).id==undefined){throwError(a,'The "'+e+'" passage does not exist');return}for(c=0;c<state.history.length;c++){if(state.history[c].passage.title==e){steps=c;break}}}}el=document.createElement("a");el.className=b;el.onclick=(function(b){return function(){return macros.back.onclick(b=="back",steps)}}(b));el.innerHTML=labeltouse;a.appendChild(el)}};version.extensions.returnMacro={major:2,minor:0,revision:0};macros["return"]={labeltext:"&#171; return",handler:function(a,b,e){macros.back.handler.call(this,a,b,e)}};function Passage(c,b,a,ofunc,okey){this.title=c;if(b){this.id=a;if(ofunc!=null&&typeof ofunc=="function"&&okey!=null){var t=b.firstChild?b.firstChild.nodeValue:"";t=ofunc(t,okey);this.initialText=this.text=Passage.unescapeLineBreaks(t);this.tags=b.getAttribute("tags");if(typeof this.tags=="string"){this.tags=ofunc(this.tags,okey);this.tags=this.tags.readBracketedList()}else{this.tags=[]}}else{this.initialText=this.text=Passage.unescapeLineBreaks(b.firstChild?b.firstChild.nodeValue:"");this.tags=b.getAttribute("tags");if(typeof this.tags=="string"){this.tags=this.tags.readBracketedList()}else{this.tags=[]}}}else{this.initialText=this.text="@@This passage does not exist: "+c+"@@";this.tags=[]}}Passage.unescapeLineBreaks=function(a){if(a&&typeof a=="string"){return a.replace(/\\n/mg,"\n").replace(/\\s/mg,"\\").replace(/\\/mg,"\\").replace(/\r/mg,"")}else{return""}};Passage.prototype.setTags=function(b){var t=this.tags!=null&&this.tags.length?this.tags.join(" "):"";if(t){b.setAttribute("data-tags",this.tags.join(" "))}document.body.setAttribute("data-tags",t)};Passage.prototype.processText=function(){var ret=this.text;if(~this.tags.indexOf("nobr")){ret=ret.replace(/\n/g,"\u200c")}if(~this.tags.indexOf("Twine.image")){ret="[img["+ret+"]]"}return ret};function Tale(){this.passages={};var a,b,c,lines,i,kv,ns,nsc,nope,settings=this.storysettings={lookup:function(a){return !~["0","off","false"].indexOf((this[a]+"").toLowerCase())}},tiddlerTitle="";function deswap(t,k){var i,c,p,p1,up,r="";for(i=0;i<t.length;i++){c=t.charAt(i);up=(c==c.toUpperCase());p=k.indexOf(c.toLowerCase());if(p>-1){p1=p+(p%2==0?1:-1);if(p1>=k.length){p1=p}c=k.charAt(p1);up&&(c=c.toUpperCase())}r=r+c}return r}if(document.normalize){document.normalize()}a=document.getElementById("storeArea").children;for(b=0;b<a.length;b++){c=a[b];if(c.getAttribute&&c.getAttribute("tiddler")=="StorySettings"){lines=new Passage("StorySettings",c,0,null,null).text.split("\n");for(i in lines){if(typeof lines[i]=="string"&&lines[i].indexOf(":")>-1){kv=lines[i].split(":");kv[0]=kv[0].replace(/^\s+|\s+$/g,"");kv[1]=kv[1].replace(/^\s+|\s+$/g,"");settings[kv[0]]=kv[1]}}}}if(settings.obfuscate=="swap"&&settings.obfuscatekey){ns="";nope=':\\"n0';if(settings.obfuscatekey=="rot13"){settings.obfuscatekey="anbocpdqerfsgthuivjwkxlymz"}for(i=0;i<settings.obfuscatekey.length;i++){nsc=settings.obfuscatekey[i];if(ns.indexOf(nsc)==-1&&nope.indexOf(nsc)==-1){ns=ns+nsc}}settings.obfuscatekey=ns;for(b=0;b<a.length;b++){c=a[b];if(c.getAttribute&&(tiddlerTitle=c.getAttribute("tiddler"))){if(tiddlerTitle!="StorySettings"){tiddlerTitle=deswap(tiddlerTitle,settings.obfuscatekey)}this.passages[tiddlerTitle]=new Passage(tiddlerTitle,c,b+1,deswap,settings.obfuscatekey)}}}else{for(b=0;b<a.length;b++){c=a[b];if(c.getAttribute&&(tiddlerTitle=c.getAttribute("tiddler"))){this.passages[tiddlerTitle]=new Passage(tiddlerTitle,c,b,null,null)}}}this.title=(this.passages.StoryTitle?this.passages.StoryTitle.text:document.title)}Tale.prototype.has=function(a){if(typeof a=="string"){return(this.passages[a]!=null)}else{for(var i in this.passages){if(this.passages[i].id==a){return true}}return false}};Tale.prototype.get=function(a){if(typeof a=="string"){return this.passages[a]||new Passage(a)}else{for(var i in this.passages){if(this.passages[i].id==a){return this.passages[i]}}}};Tale.prototype.lookup=function(h,g,a){var d=[];for(var c in this.passages){var f=this.passages[c];for(var b=0;b<f[h].length;b++){if(f[h][b]==g){d.push(f)}}}if(!a){a="title"}d.sort(function(k,j){if(k[a]==j[a]){return(0)}else{return(k[a]<j[a])?-1:+1}});return d};Tale.prototype.canUndo=function(){return this.storysettings.lookup("undo")};Tale.prototype.forEachStylesheet=function(tags,callback){var passage,i;tags=tags||[];if(typeof callback!="function"){return}for(passage in this.passages){passage=tale.passages[passage];if(passage&&~passage.tags.indexOf("stylesheet")){for(i=0;i<tags.length;i++){if(~passage.tags.indexOf(tags[i])){callback(passage);break}}}}};function Wikifier(place,source){this.source=source;this.output=place;this.nextMatch=0;this.assembleFormatterMatches(Wikifier.formatters);this.subWikify(this.output)}Wikifier.prototype.assembleFormatterMatches=function(formatters){this.formatters=[];var pattern=[];for(var n=0;n<formatters.length;n++){pattern.push("("+formatters[n].match+")");this.formatters.push(formatters[n])}this.formatterRegExp=new RegExp(pattern.join("|"),"mg")};Wikifier.prototype.subWikify=function(output,terminator){var terminatorMatch,formatterMatch,oldOutput=this.output;this.output=output;var terminatorRegExp=terminator?new RegExp("("+terminator+")","mg"):null;do{this.formatterRegExp.lastIndex=this.nextMatch;if(terminatorRegExp){terminatorRegExp.lastIndex=this.nextMatch}formatterMatch=this.formatterRegExp.exec(this.source);terminatorMatch=terminatorRegExp?terminatorRegExp.exec(this.source):null;if(terminatorMatch&&(!formatterMatch||terminatorMatch.index<=formatterMatch.index)){if(terminatorMatch.index>this.nextMatch){this.outputText(this.output,this.nextMatch,terminatorMatch.index)}this.matchStart=terminatorMatch.index;this.matchLength=terminatorMatch[1].length;this.matchText=terminatorMatch[1];this.nextMatch=terminatorMatch.index+terminatorMatch[1].length;this.output=oldOutput;return}else{if(formatterMatch){if(formatterMatch.index>this.nextMatch){this.outputText(this.output,this.nextMatch,formatterMatch.index)}this.matchStart=formatterMatch.index;this.matchLength=formatterMatch[0].length;this.matchText=formatterMatch[0];this.nextMatch=this.formatterRegExp.lastIndex;var matchingFormatter=-1;for(var t=1;t<formatterMatch.length;t++){if(formatterMatch[t]){matchingFormatter=t-1}}if(matchingFormatter!=-1){this.formatters[matchingFormatter].handler(this)}}}}while(terminatorMatch||formatterMatch);if(this.nextMatch<this.source.length){this.outputText(this.output,this.nextMatch,this.source.length);this.nextMatch=this.source.length}this.output=oldOutput};Wikifier.prototype.outputText=function(place,startPos,endPos){insertText(place,this.source.substring(startPos,endPos))};Wikifier.prototype.fullMatch=function(){return this.source.slice(this.matchStart,this.source.indexOf(">>",this.matchStart)+2)};Wikifier.prototype.fullArgs=function(includeName){var startPos=this.source.indexOf(includeName?"<<":" ",this.matchStart)+(includeName?2:1),endPos=this.source.indexOf(">>",this.matchStart);if(startPos<this.matchStart||endPos<this.matchStart){return""}return Wikifier.parse(this.source.slice(startPos,endPos).trim())};Wikifier.parse=function(input){var m,re,b=input,found=[],g="(?=(?:[^\"'\\\\]*(?:\\\\.|'(?:[^'\\\\]*\\\\.)*[^'\\\\]*'|\"(?:[^\"\\\\]*\\\\.)*[^\"\\\\]*\"))*[^'\"]*$)";function alter(from,to){return b.replace(new RegExp(from+g,"gi"),to)}re=new RegExp(Wikifier.textPrimitives.variable,"gi");while(m=re.exec(input)){if(!~found.indexOf(m[0])){b=m[0]+" == null && ("+m[0]+" = 0);"+b;found.push(m[0])}}b=alter(Wikifier.textPrimitives.variable,"state.history[0].variables.$1");b=alter("\\beq\\b"," == ");b=alter("\\bneq\\b"," != ");b=alter("\\bgt\\b"," > ");b=alter("\\bgte\\b"," >= ");b=alter("\\blt\\b"," < ");b=alter("\\blte\\b"," <= ");b=alter("\\band\\b"," && ");b=alter("\\bor\\b"," || ");b=alter("\\bnot\\b"," ! ");b=alter("\\bis\\b"," == ");b=alter("\\bto\\b"," = ");return b};Wikifier.formatHelpers={charFormatHelper:function(a){var b=insertElement(a.output,this.element);a.subWikify(b,this.terminator)},inlineCssHelper:function(w){var s,v,lookaheadMatch,gotMatch,styles=[],lookahead="(?:("+Wikifier.textPrimitives.anyLetter+"+)\\(([^\\)\\|\\n]+)(?:\\):))|(?:("+Wikifier.textPrimitives.anyLetter+"+):([^;\\|\\n]+);)",lookaheadRegExp=new RegExp(lookahead,"mg"),hadStyle=false;do{lookaheadRegExp.lastIndex=w.nextMatch;lookaheadMatch=lookaheadRegExp.exec(w.source);gotMatch=lookaheadMatch&&lookaheadMatch.index==w.nextMatch;if(gotMatch){hadStyle=true;if(lookaheadMatch[1]){s=lookaheadMatch[1].unDash();v=lookaheadMatch[2]}else{s=lookaheadMatch[3].unDash();v=lookaheadMatch[4]}switch(s){case"bgcolor":s="backgroundColor";break;case"float":s="cssFloat";break}styles.push({style:s,value:v});w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}while(gotMatch);return styles},monospacedByLineHelper:function(w){var lookaheadRegExp=new RegExp(this.lookahead,"mg");lookaheadRegExp.lastIndex=w.matchStart;var lookaheadMatch=lookaheadRegExp.exec(w.source);if(lookaheadMatch&&lookaheadMatch.index==w.matchStart){var text=lookaheadMatch[1];if(navigator.userAgent.indexOf("msie")!=-1&&navigator.userAgent.indexOf("opera")==-1){text=text.replace(/\n/g,"\r")}var e=insertElement(w.output,"pre",null,null,text);w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}};Wikifier.formatters=[{name:"table",match:"^\\|(?:[^\\n]*)\\|(?:[fhc]?)$",lookahead:"^\\|([^\\n]*)\\|([fhc]?)$",rowTerminator:"\\|(?:[fhc]?)$\\n?",cellPattern:"(?:\\|([^\\n\\|]*)\\|)|(\\|[fhc]?$\\n?)",cellTerminator:"(?:\\x20*)\\|",rowTypes:{"c":"caption","h":"thead","":"tbody","f":"tfoot"},handler:function(w){var rowContainer,rowElement,lookaheadMatch,matched,table=insertElement(w.output,"table"),lookaheadRegExp=new RegExp(this.lookahead,"mg"),currRowType=null,nextRowType,prevColumns=[],rowCount=0;w.nextMatch=w.matchStart;do{lookaheadRegExp.lastIndex=w.nextMatch;lookaheadMatch=lookaheadRegExp.exec(w.source),matched=lookaheadMatch&&lookaheadMatch.index==w.nextMatch;if(matched){nextRowType=lookaheadMatch[2];if(nextRowType!=currRowType){rowContainer=insertElement(table,this.rowTypes[nextRowType])}currRowType=nextRowType;if(currRowType=="c"){if(rowCount==0){rowContainer.setAttribute("align","top")}else{rowContainer.setAttribute("align","bottom")}w.nextMatch=w.nextMatch+1;w.subWikify(rowContainer,this.rowTerminator)}else{rowElement=insertElement(rowContainer,"tr");this.rowHandler(w,rowElement,prevColumns)}rowCount++}}while(matched)},rowHandler:function(w,e,prevColumns){var cellMatch,matched,col=0,currColCount=1,cellRegExp=new RegExp(this.cellPattern,"mg");do{cellRegExp.lastIndex=w.nextMatch;cellMatch=cellRegExp.exec(w.source);matched=cellMatch&&cellMatch.index==w.nextMatch;if(matched){if(cellMatch[1]=="~"){var last=prevColumns[col];if(last){last.rowCount++;last.element.setAttribute("rowSpan",last.rowCount);last.element.setAttribute("rowspan",last.rowCount);last.element.valign="center"}w.nextMatch=cellMatch.index+cellMatch[0].length-1}else{if(cellMatch[1]==">"){currColCount++;w.nextMatch=cellMatch.index+cellMatch[0].length-1}else{if(cellMatch[2]){w.nextMatch=cellMatch.index+cellMatch[0].length;break}else{var spaceLeft=false,spaceRight=false,lastColCount,lastColElement,styles,cell,t;w.nextMatch++;styles=Wikifier.formatHelpers.inlineCssHelper(w);while(w.source.substr(w.nextMatch,1)==" "){spaceLeft=true;w.nextMatch++}if(w.source.substr(w.nextMatch,1)=="!"){cell=insertElement(e,"th");w.nextMatch++}else{cell=insertElement(e,"td")}prevColumns[col]={rowCount:1,element:cell};lastColCount=1;lastColElement=cell;if(currColCount>1){cell.setAttribute("colSpan",currColCount);cell.setAttribute("colspan",currColCount);currColCount=1}for(t=0;t<styles.length;t++){cell.style[styles[t].style]=styles[t].value}w.subWikify(cell,this.cellTerminator);if(w.matchText.substr(w.matchText.length-2,1)==" "){spaceRight=true}if(spaceLeft&&spaceRight){cell.align="center"}else{if(spaceLeft){cell.align="right"}else{if(spaceRight){cell.align="left"}}}w.nextMatch=w.nextMatch-1}}}col++}}while(matched)}},{name:"rule",match:"^----$\\n?",handler:function(w){insertElement(w.output,"hr")}},{name:"emdash",match:"--",handler:function(a){insertElement(a.output,"span",null,"char "+(a.matchText==" "?"space":a.matchText),a.matchText)}},{name:"heading",match:"^!{1,5}",terminator:"\\n",handler:function(w){var e=insertElement(w.output,"h"+w.matchLength);w.subWikify(e,this.terminator)}},{name:"monospacedByLine",match:"^\\{\\{\\{\\n",lookahead:"^\\{\\{\\{\\n((?:^[^\\n]*\\n)+?)(^\\}\\}\\}$\\n?)",handler:Wikifier.formatHelpers.monospacedByLineHelper},{name:"monospacedByLineForPlugin",match:"^//\\{\\{\\{\\n",lookahead:"^//\\{\\{\\{\\n\\n*((?:^[^\\n]*\\n)+?)(\\n*^//\\}\\}\\}$\\n?)",handler:Wikifier.formatHelpers.monospacedByLineHelper},{name:"wikifyCommentForPlugin",match:"^/\\*\\*\\*\\n",terminator:"^\\*\\*\\*/\\n",handler:function(w){w.subWikify(w.output,this.terminator)}},{name:"quoteByBlock",match:"^<<<\\n",terminator:"^<<<\\n",handler:function(w){var e=insertElement(w.output,"blockquote");w.subWikify(e,this.terminator)}},{name:"quoteByLine",match:"^>+",terminator:"\\n",element:"blockquote",handler:function(w){var lookaheadRegExp=new RegExp(this.match,"mg");var placeStack=[w.output];var currLevel=0;var newLevel=w.matchLength;var t;do{if(newLevel>currLevel){for(t=currLevel;t<newLevel;t++){placeStack.push(insertElement(placeStack[placeStack.length-1],this.element))}}else{if(newLevel<currLevel){for(t=currLevel;t>newLevel;t--){placeStack.pop()}}}currLevel=newLevel;w.subWikify(placeStack[placeStack.length-1],this.terminator);lookaheadRegExp.lastIndex=w.nextMatch;var lookaheadMatch=lookaheadRegExp.exec(w.source);var matched=lookaheadMatch&&lookaheadMatch.index==w.nextMatch;if(matched){newLevel=lookaheadMatch[0].length;w.nextMatch+=lookaheadMatch[0].length;insertElement(placeStack[placeStack.length-1],"br")}}while(matched)}},{name:"list",match:"^(?:(?:\\*+)|(?:#+))",lookahead:"^(?:(\\*+)|(#+))",terminator:"\\n",outerElement:"ul",itemElement:"li",handler:function(w){var lookaheadRegExp=new RegExp(this.lookahead,"mg");w.nextMatch=w.matchStart;var placeStack=[w.output];var currType=null,newType;var currLevel=0,newLevel;var t;do{lookaheadRegExp.lastIndex=w.nextMatch;var lookaheadMatch=lookaheadRegExp.exec(w.source);var matched=lookaheadMatch&&lookaheadMatch.index==w.nextMatch;if(matched){if(lookaheadMatch[1]){newType="ul"}if(lookaheadMatch[2]){newType="ol"}newLevel=lookaheadMatch[0].length;w.nextMatch+=lookaheadMatch[0].length;if(newLevel>currLevel){for(t=currLevel;t<newLevel;t++){placeStack.push(insertElement(placeStack[placeStack.length-1],newType))}}else{if(newLevel<currLevel){for(t=currLevel;t>newLevel;t--){placeStack.pop()}}else{if(newLevel==currLevel&&newType!=currType){placeStack.pop();placeStack.push(insertElement(placeStack[placeStack.length-1],newType))}}}currLevel=newLevel;currType=newType;var e=insertElement(placeStack[placeStack.length-1],"li");w.subWikify(e,this.terminator)}}while(matched)}},(Wikifier.linkFormatter={name:"prettyLink",match:"\\[\\[",lookahead:"\\[\\[([^\\|\\]]*?)(?:\\|(.*?))?\\](?:\\[(.*?)])?\\]",callback:function(out,text){return function(){macros.set.run(out,text)}},handler:function(w){var title,link,callback,lookaheadRegExp=new RegExp(this.lookahead,"mg");lookaheadRegExp.lastIndex=w.matchStart;var lookaheadMatch=lookaheadRegExp.exec(w.source);if(lookaheadMatch&&lookaheadMatch.index==w.matchStart){if(lookaheadMatch[3]){callback=this.callback(w.output,lookaheadMatch[3])}if(!lookaheadMatch[2]){title=Wikifier.parsePassageTitle(lookaheadMatch[1]);link=Wikifier.createInternalLink(w.output,title,callback);setPageElement(link,null,title)}else{title=Wikifier.parsePassageTitle(lookaheadMatch[2]);if(tale.has(title)||!title){link=Wikifier.createInternalLink(w.output,title,callback)}else{link=Wikifier.createExternalLink(w.output,lookaheadMatch[2],callback)}setPageElement(link,null,w.source.substring(w.nextMatch,w.nextMatch+lookaheadMatch[1].length))}w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}}),{name:"urlLink",match:"(?:http|https|mailto|ftp):[^\\s'\"]+(?:/|\\b)",handler:function(w){var e=Wikifier.createExternalLink(w.output,w.matchText);w.outputText(e,w.matchStart,w.nextMatch)}},(Wikifier.imageFormatter={name:"image",match:"\\[(?:[<]{0,1})(?:[>]{0,1})[Ii][Mm][Gg]\\[",lookahead:"\\[([<]?)(>?)img\\[(?:([^\\|\\]]+)\\|)?([^\\[\\]\\|]+)\\](?:\\[([^\\]]*)\\]?)?(\\])",handler:function(w){var lookaheadRegExp=new RegExp(this.lookahead,"mig");lookaheadRegExp.lastIndex=w.matchStart;var lookaheadMatch=lookaheadRegExp.exec(w.source);if(lookaheadMatch&&lookaheadMatch.index==w.matchStart){var e=w.output,title=Wikifier.parsePassageTitle(lookaheadMatch[5]);if(title){if(tale.has(title)){e=Wikifier.createInternalLink(w.output,title)}else{e=Wikifier.createExternalLink(w.output,title)}}var img=insertElement(e,"img");if(lookaheadMatch[1]){img.align="left"}else{if(lookaheadMatch[2]){img.align="right"}}if(lookaheadMatch[3]){img.title=lookaheadMatch[3]}img.src=lookaheadMatch[4];var imgPassages=tale.lookup("tags","Twine.image");for(var j=0;j<imgPassages.length;j++){if(imgPassages[j].title==lookaheadMatch[4]){img.src=imgPassages[j].text;break}}w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}}),{name:"macro",match:"<<",lookahead:"<<([^>\\s]+)(?:\\s*)((?:[^>]|>(?!>))*)>>",handler:function(w){var lookaheadRegExp=new RegExp(this.lookahead,"mg");lookaheadRegExp.lastIndex=w.matchStart;var lookaheadMatch=lookaheadRegExp.exec(w.source);if(lookaheadMatch&&lookaheadMatch.index==w.matchStart&&lookaheadMatch[1]){var params=lookaheadMatch[2].readMacroParams();w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length;var name=lookaheadMatch[1];try{var macro=macros[name];if(macro&&macro.handler){macro.handler(w.output,name,params,w)}else{if(name[0]=="$"){macros.print.handler(w.output,name,[name].concat(params),w)}else{if(tale.has(name)){macros.display.handler(w.output,name,[name].concat(params),w)}else{throwError(w.output,"Macro not found: "+name,w.fullMatch())}}}}catch(e){throwError(w.output,"Error executing macro "+name+": "+e.toString(),w.fullMatch())}}}},{name:"html",match:"<html>",lookahead:"<html>((?:.|\\n)*?)</html>",handler:function(w){var lookaheadRegExp=new RegExp(this.lookahead,"mg");lookaheadRegExp.lastIndex=w.matchStart;var lookaheadMatch=lookaheadRegExp.exec(w.source);if(lookaheadMatch&&lookaheadMatch.index==w.matchStart){var e=insertElement(w.output,"span");e.innerHTML=lookaheadMatch[1];w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}},{name:"commentByBlock",match:"/%",lookahead:"/%((?:.|\\n)*?)%/",handler:function(w){var lookaheadRegExp=new RegExp(this.lookahead,"mg");lookaheadRegExp.lastIndex=w.matchStart;var lookaheadMatch=lookaheadRegExp.exec(w.source);if(lookaheadMatch&&lookaheadMatch.index==w.matchStart){w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}},{name:"boldByChar",match:"''",terminator:"''",element:"strong",handler:Wikifier.formatHelpers.charFormatHelper},{name:"strikeByChar",match:"==",terminator:"==",element:"strike",handler:Wikifier.formatHelpers.charFormatHelper},{name:"underlineByChar",match:"__",terminator:"__",element:"u",handler:Wikifier.formatHelpers.charFormatHelper},{name:"italicByChar",match:"//",terminator:"//",element:"em",handler:Wikifier.formatHelpers.charFormatHelper},{name:"subscriptByChar",match:"~~",terminator:"~~",element:"sub",handler:Wikifier.formatHelpers.charFormatHelper},{name:"superscriptByChar",match:"\\^\\^",terminator:"\\^\\^",element:"sup",handler:Wikifier.formatHelpers.charFormatHelper},{name:"monospacedByChar",match:"\\{\\{\\{",lookahead:"\\{\\{\\{((?:.|\\n)*?)\\}\\}\\}",handler:function(w){var lookaheadRegExp=new RegExp(this.lookahead,"mg");lookaheadRegExp.lastIndex=w.matchStart;var lookaheadMatch=lookaheadRegExp.exec(w.source);if(lookaheadMatch&&lookaheadMatch.index==w.matchStart){var e=insertElement(w.output,"code",null,null,lookaheadMatch[1]);w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}},{name:"styleByChar",match:"@@",terminator:"@@",lookahead:"(?:([^\\(@]+)\\(([^\\)]+)(?:\\):))|(?:([^:@]+):([^;]+);)",handler:function(w){var e=insertElement(w.output,"span",null,null,null);var styles=Wikifier.formatHelpers.inlineCssHelper(w);if(styles.length==0){e.className="marked"}else{for(var t=0;t<styles.length;t++){e.style[styles[t].style]=styles[t].value}}w.subWikify(e,this.terminator)}},{name:"lineBreak",match:"\\n",handler:function(w){insertElement(w.output,"br")}},{name:"continuedLine",match:"\\\\\\s*?\\n",handler:function(a){a.nextMatch=a.matchStart+2}},{name:"htmltag",match:"<\\w+(?:(?:\\s+\\w+(?:\\s*=\\s*(?:\".*?\"|'.*?'|[^'\">\\s]+))?)+\\s*|\\s*)\\/?>",tagname:"<(\\w+)",voids:["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"],handler:function(a){var e,isvoid,lookaheadRegExp,lookaheadMatch,lookahead,re=new RegExp(this.tagname).exec(a.matchText),tn=re&&re[1];if(tn&&tn.toLowerCase()!="html"){lookahead="<\\/\\s*"+tn+"\\s*>";isvoid=(this.voids.indexOf(tn.toLowerCase())!=-1);lookaheadRegExp=new RegExp(lookahead,"mg");lookaheadRegExp.lastIndex=a.matchStart;lookaheadMatch=lookaheadRegExp.exec(a.source);if(lookaheadMatch||isvoid){e=document.createElement(a.output.tagName);e.innerHTML=a.matchText;e=e.firstChild;if(!isvoid){a.subWikify(e,lookahead)}a.output.appendChild(e)}else{throwError(a.output,"HTML tag '"+tn+"' wasn't closed.",a.matchText)}}}},{name:"char",match:".",handler:function(a){insertElement(a.output,"span",null,"char "+(a.matchText==" "?"space":a.matchText),a.matchText)}}];Wikifier.parsePassageTitle=function(title){if(title&&!tale.has(title)){try{title=eval(this.parse(title));title&&(title+="")}catch(e){}}return title};Wikifier.createExternalLink=function(place,url){var el=insertElement(place,"a");el.href=url;el.className="externalLink";el.target="_blank";if(place){place.appendChild(el)}return el};if(!((new RegExp("[\u0150\u0170]","g")).test("\u0150"))){Wikifier.textPrimitives={upperLetter:"[A-Z\u00c0-\u00de]",lowerLetter:"[a-z\u00df-\u00ff_0-9\\-]",anyLetter:"[A-Za-z\u00c0-\u00de\u00df-\u00ff_0-9\\-]"}}else{Wikifier.textPrimitives={upperLetter:"[A-Z\u00c0-\u00de\u0150\u0170]",lowerLetter:"[a-z\u00df-\u00ff_0-9\\-\u0151\u0171]",anyLetter:"[A-Za-z\u00c0-\u00de\u00df-\u00ff_0-9\\-\u0150\u0170\u0151\u0171]"}}Wikifier.textPrimitives.variable="\\$((?:"+Wikifier.textPrimitives.anyLetter.replace("\\-","\\.")+"*"+Wikifier.textPrimitives.anyLetter.replace("0-9\\-","\\.")+"+"+Wikifier.textPrimitives.anyLetter.replace("\\-","\\.")+"*"+"|\\[[^\\]]+\\])+)";function visited(e){var ret=0,i=0;e=e||state.history[0].passage.title;if(arguments.length>1){for(ret=state.history.length;i<arguments.length;i++){ret=Math.min(ret,visited(arguments[i]))}}else{for(;i<state.history.length&&state.history[i].passage;i++){if(~e.indexOf(state.history[i].passage.title)){ret++}}}return ret}function previous(){if(state.history[1]){for(var d=1;d<state.history.length&&state.history[d].passage;d++){if(state.history[d].passage.title!=state.history[0].passage.title){return state.history[d].passage.title}}}return""}function either(){return arguments[~~(Math.random()*arguments.length)]}function parameter(n){n=n||0;if(macros.display.parameters[n]){return macros.display.parameters[n]}throw new RangeError("there isn't a parameter "+n)}function scriptEval(s){try{eval(s.text)}catch(e){alert("There is a technical problem with this story ("+s.title+": "+e.message+"). You may be able to continue reading, but parts of the story may not work properly.")}}var $;function main(){$=window.$||function(a){return(typeof a=="string"?document.getElementById(a):a)};var imgs,scripts,macro,style,styleText="",i,p=document.getElementById("passages");if(!window.JSON){return(p.innerHTML="This story requires a newer web browser. Sorry.")}else{p.innerHTML=""}tale=window.tale=new Tale();state=window.state=new History();document.title=tale.title;if(~document.documentElement.className.indexOf("lt-ie9")){imgs=tale.lookup("tags","Twine.image");for(i=0;i<imgs.length;i++){if(imgs[i].text.length>=32768){alert("NOTE: This story's HTML file contains embedded images that may be too large for this browser to display.");break}}}setPageElement("storyTitle","StoryTitle","Untitled Story");setPageElement("storySubtitle","StorySubtitle","");if(tale.has("StoryAuthor")){setPageElement("titleSeparator",null,"\n");setPageElement("storyAuthor","StoryAuthor","")}if(tale.has("StoryMenu")){document.getElementById("storyMenu").style.display="inline";setPageElement("storyMenu","StoryMenu","")}scripts=tale.lookup("tags","script");for(i=0;i<scripts.length;i++){scriptEval(scripts[i])}for(macro in macros){macro=macros[macro];if(typeof macro.init=="function"){macro.init()}}style=document.getElementById("storyCSS");for(i in tale.passages){i=tale.passages[i];if(i.tags+""=="stylesheet"){styleText+=alterCSS(i.text)}else{if(i.tags.length==2&&i.tags.indexOf("transition")>-1&&i.tags.indexOf("stylesheet")>-1){setTransitionCSS(i.text)}}}style.styleSheet?(style.styleSheet.cssText=styleText):(style.innerHTML=styleText);state.init()};

var hasPushState=!!window.history&&(typeof window.history.pushState=="function");Tale.prototype.canBookmark=function(){return this.canUndo()&&(this.storysettings.lookup("bookmark")||!hasPushState)};History.prototype.init=function(){var a=this;if(!this.restore()){this.display("Start",null)}if(!hasPushState){this.hash=window.location.hash;this.interval=window.setInterval(function(){a.watchHash()},250)}};History.prototype.display=function(title,b,type,callback){var bookmarkhref,c=tale.get(title),p=document.getElementById("passages");if(type!="back"){this.history.unshift({passage:c,variables:clone(this.history[0].variables)});if(typeof callback=="function"){callback();this.history[1]&&(this.history[1].linkVars=delta(this.history[1].variables,this.history[0].variables))}if(hasPushState&&tale.canUndo()){if(this.history.length<=2&&window.history.state==""){window.history.replaceState(this.history,document.title)}else{window.history.pushState(this.history,document.title)}}}bookmarkhref=this.save();var e=c.render();if(type!="quietly"){if(hasTransition){for(var i=0;i<p.childNodes.length;i+=1){var q=p.childNodes[i];q.classList.add("transition-out");setTimeout((function(a){return function(){if(a.parentNode){a.parentNode.removeChild(a)}}}(q)),1000)}e.classList.add("transition-in");setTimeout(function(){e.classList.remove("transition-in")},1);e.style.visibility="visible";p.appendChild(e)}else{removeChildren(p);p.appendChild(e);fade(e,{fade:"in"})}}else{p.appendChild(e);e.style.visibility="visible"}if(tale.canUndo()){if(!hasPushState&&type!="back"){this.hash=bookmarkhref;window.location.hash=this.hash}else{if(tale.canBookmark()){var bookmark=document.getElementById("bookmark");bookmark&&(bookmark.href=bookmarkhref)}}}window.scroll(0,0);return e};History.prototype.watchHash=function(){if(window.location.hash!=this.hash){if(window.location.hash&&(window.location.hash!="#")){this.history=[{passage:null,variables:{}}];removeChildren(document.getElementById("passages"));if(!this.restore()){alert("The passage you had previously visited could not be found.")}}else{window.location.reload()}this.hash=window.location.hash}};History.prototype.restart=function(){if(!hasPushState){window.location.hash=""}else{window.history.replaceState(this.history,document.title,window.location.href.replace(/#.*$/,""));window.location.reload()}};Passage.prototype.render=function(){var b=insertElement(null,"div","passage"+this.title,"passage");b.style.visibility="hidden";this.setTags(b);this.setCSS();insertElement(b,"div","","header");var a=insertElement(b,"div","","body content");for(var i in prerender){(typeof prerender[i]=="function")&&prerender[i].call(this,a)}new Wikifier(a,this.processText());insertElement(b,"div","","footer");for(i in postrender){(typeof postrender[i]=="function")&&postrender[i].call(this,a)}return b};Passage.prototype.excerpt=function(){var b=this.text.replace(/<<.*?>>/g,"");b=b.replace(/!.*?\n/g,"");b=b.replace(/[\[\]\/]/g,"");var a=b.split("\n");while(a.length&&a[0].length==0){a.shift()}var c="";if(a.length==0||a[0].length==0){c=this.title}else{c=a[0].substr(0,30)+"..."}return c};Passage.transitionCache="";Passage.prototype.setCSS=function(){var trans=false,text="",tags=this.tags||[],c=document.getElementById("tagCSS"),c2=document.getElementById("transitionCSS");if(c&&c.getAttribute("data-tags")!=tags.join(" ")){tale.forEachStylesheet(tags,function(passage){if(~passage.tags.indexOf("transition")){if(!Passage.transitionCache&&c2){Passage.transitionCache=c2.innerHTML}setTransitionCSS(passage.text);trans=true}else{text+=alterCSS(passage.text)}});if(!trans&&Passage.transitionCache&&c2){setTransitionCSS(Passage.transitionCache);trans=false;Passage.transitionCache=""}c.styleSheet?(c.styleSheet.cssText=text):(c.innerHTML=text);c.setAttribute("data-tags",tags.join(" "))}};Wikifier.createInternalLink=function(place,title,callback){var el=insertElement(place,"a",title);if(tale.has(title)){el.className="internalLink"}else{el.className="brokenLink"}el.onclick=function(){state.display(title,el,null,callback)};if(place){place.appendChild(el)}return el};var Interface={init:function(){var snapback=document.getElementById("snapback"),restart=document.getElementById("restart"),bookmark=document.getElementById("bookmark");main();if(snapback){if(!tale.lookup("tags","bookmark").length){snapback.parentNode.removeChild(snapback)}else{snapback.onclick=Interface.showSnapback}}if(bookmark&&(!tale.canBookmark()||!hasPushState)){bookmark.parentNode.removeChild(bookmark)}restart&&(restart.onclick=Interface.restart)},restart:function(){if(confirm("Are you sure you want to restart this story?")){window.state.restart()}},showSnapback:function(a){Interface.hideAllMenus();Interface.buildSnapback();Interface.showMenu(a,document.getElementById("snapbackMenu"))},buildSnapback:function(){var b,c=false,state=window.state,menuelem=document.getElementById("snapbackMenu");while(menuelem.hasChildNodes()){menuelem.removeChild(menuelem.firstChild)}for(var a=state.history.length-1;a>=0;a--){if(state.history[a].passage&&state.history[a].passage.tags.indexOf("bookmark")!=-1){b=document.createElement("div");b.pos=a;b.onclick=function(){var p=this.pos;var n=state.history[p].passage.title;while(p>=0){if(state.history.length>1){state.history.shift()}p--}state.display(n)};b.innerHTML=state.history[a].passage.excerpt();menuelem.appendChild(b);c=true}}if(!c){b=document.createElement("div");b.innerHTML="<i>No passages available</i>";document.getElementById("snapbackMenu").appendChild(b)}},hideAllMenus:function(){document.getElementById("snapbackMenu").style.display="none"},showMenu:function(b,a){if(!b){b=window.event}var c={x:0,y:0};if(b.pageX||b.pageY){c.x=b.pageX;c.y=b.pageY}else{if(b.clientX||b.clientY){c.x=b.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;c.y=b.clientY+document.body.scrollTop+document.documentElement.scrollTop}}a.style.top=c.y+"px";a.style.left=c.x+"px";a.style.display="block";document.onclick=Interface.hideAllMenus;b.cancelBubble=true;if(b.stopPropagation){b.stopPropagation()}}};window.onload=Interface.init;macros.back.onclick=function(back,steps){if(back){if(tale.canUndo()){window.history.go(-steps);return}else{while(steps>=0){if(state.history.length>1){state.history.shift()}steps--}}state.display(state.history[0].passage.title)}else{state.display(state.history[steps].passage.title)}};window.onpopstate=function(e){if(e.state&&e.state.length>0){state.history=e.state;state.display(state.history[0].passage.title,null,"back")}};

}());
</script>
<script title="modules">


</script>
<style id="baseCSS">
body {
	background-color: #000;
	color: #fff;
	font-family: Verdana,sans-serif;
	font-size: 62.5%;
	margin: 4em 15% 5% 5em;
}
#sidebar {
	position: absolute;
	width: 12em;
	list-style: none;
	margin: 0;
	padding: 0 1em 0 0;
	font: bold 1.1em Verdana,sans-serif;
}
#sidebar li {
	color: #333;
	text-align: right;
	background-repeat: no-repeat;
	margin-bottom: 1em;
	line-height: 1.4em !important;
	list-style: none;
}
#sidebar li:hover {
	color: #fff;
	cursor: pointer;
}
#sidebar li a {
	color: #333;
	text-decoration: none;
}
#sidebar li a:hover {
	color: #fff;
	text-decoration: none;
}
#sidebar #title {
	color: #999;
	font-size: 150%;
	cursor: auto;
}
#sidebar #title a {
	color: #999;
}
#sidebar #title a:hover {
	color: #fff;
}
#sidebar 
#storySubtitle {
	font-size: 75%;
	display: block;
}
#storyAuthor {
	font-size: 50%;
}
#sidebar #storyMenu {
	display: none;
	line-height: 2.5em;
	margin-bottom: .5em;
}
#sidebar #title:hover {
	color: #999;
}
#sidebar #credits {
	padding-top: 2em;
	font-weight: normal;
	font-size: 80%;
	cursor: auto;
}
#sidebar #credits:hover {
	color: #333;
}
#sidebar #credits a {
	text-decoration: none;
}
.menu {
	position: absolute;
	display: none;
	background-color: #343434;
	color: #fff;
	opacity: .9;
	border: 1px solid #fff;
	text-align: left;
	font: 1.1em Verdana;
	line-height: 2em;
}
.menu div {
	padding: 0 .4em;
}
.menu div:hover {
	cursor: pointer;
	background-color: #fff;
	color: #343434;
}
#passages {
	margin-left: 18.2em;
	border-left: 1px solid #333;
	padding-left: 1.5em;
	position:relative;
}
.passage {
	font-size: 1.2em;
	line-height: 175%;
	margin-bottom: 2em;
	text-align: left;
}
.passage ul {
	padding-top: 1.3em;
}
.passage li {
	margin-right: 6em;
}
.passage center {
	max-width:50%;
	margin:auto;
}
.passage a {
	color: #4d6ad8;
	font-weight: bold;
	text-decoration: none;
	cursor: pointer;
}
.passage a:hover {
	color: #8ea6ff;
	text-decoration: underline;
}
a.brokenLink {
	background-color: red;
	text-decoration: none;
	color: #000;
}
.disabled {
	font-weight: bold;
	color: #333;
}
.marked {
	background-color: red;
	color: #000;
	margin-right: 12px;
	padding: 3px;
}
.marked[title] {
	cursor: help;
}
.passage ul {
	margin-left: .5em;
	padding-left: 1.5em;
}
.passage ol {
	margin-left: .5em;
	padding-left: 1.5em;
}
.passage table {
	border-collapse: collapse;
	font-size: 100%;
	margin: .8em 1.0em;
}
.passage th,.passage td,.passage tr,.passage caption {
	padding: 3px;
}
.passage hr {
	height: 1px;
}
#storeArea {
	display: none;
}
#noscript {
	margin-left: 18.2em;
	font-size: 1.2em;
	font-weight: bold;
}
</style>
<style id="transitionCSS">
.transition-in {
	opacity:0;
	position:absolute;
}
.passage:not(.transition-out) {
	transition: 1s;
	-webkit-transition: 1s;
}
#passages .transition-out {
	opacity:0 !important;
	position:absolute;
}
</style>
<style id="storyCSS"></style>
<style id="tagCSS"></style>
</head>
<body>
<ul id="sidebar">
<li id="title"><span id="storyTitle"></span><span id="storySubtitle"></span><span id="titleSeparator"></span><span id="storyAuthor"></span></li>
<li id="storyMenu"></li>
<li id="snapback">Rewind</li>
<li id="restart">Restart</li>
<li><a id="bookmark" title="Permanent link to this passage">Bookmark</a></li>
<li id="credits">
This story was created with <a href="http://twinery.org/">Twine</a> and is powered by <a href="http://tiddlywiki.com/">TiddlyWiki</a>
</li>
</ul>
<div id="snapbackMenu" class="menu"></div>
<div id="passages">
<noscript><div id="noscript">Please enable Javascript to play this story!</div></noscript>
<style>#sidebar{display:none;}</style>
</div>
<div id="storeArea"><div tiddler="Outro1" tags="" modified="201312200744" created="201312170858" twine-position="2471,437" modifier="twee">&lt;h1&gt;End of tutorial&lt;/h1&gt;\n&lt;h3&gt;Actors&lt;/h3&gt;\nDr. Odds\n&lt;h3&gt;Description&lt;/h3&gt;\nThe test of the Chaos Gun was successful. Dr Odds is ready to unleash it against the aliens\n&lt;h3&gt;Storyboard&lt;/h3&gt;\nTODO\n&lt;h3&gt;Script&lt;/h3&gt;\n&lt;b&gt;Panel 1-&lt;/b&gt;\n&lt;i&gt;Dr Odds is in the hangar, walking toward his hovercraft&lt;/i&gt;\nDr. Odds (speaking into a recorder)- “It works! The operation will now commence. I will start my campaign by ridding Freeport of this menace”\n&lt;b&gt;Panel 2-&lt;/b&gt;\n&lt;i&gt;Dr Odds is in the cockpit of his hovercraft&lt;/i&gt;\nDr. Odds (speaking into a recorder)- “Day 326, 0900 hours. My plan to free and reconquer the world begins now”\n&lt;b&gt;Panel 3-&lt;/b&gt;\n&lt;i&gt;The hovercraft leaves the hangar and is headed toward Freeport&lt;/i&gt;\n\n&lt;h3&gt;Referenced by:&lt;/h3&gt;\n[[Level #1|L1]]\n\n[[Prev|Intro1]] | [[Plot|Plot]] | [[Next|Outro2]]</div><div tiddler="Outro2" tags="" modified="201312200744" created="201312200743" twine-position="2545,290" modifier="twee">&lt;h1&gt;It Works!&lt;/h1&gt;\n\n[[Prev|Outro1]] | [[Plot|Plot]]</div><div tiddler="Style" tags="" modified="201312171018" created="201312170956" twine-position="629,986" modifier="twee">&lt;h1&gt;Style Guides&lt;/h1&gt;\nTODO\n\n[[Prev|Concepts]] | [[Game Art|Art]] | [[Next|CharArt]]</div><div tiddler="Scope" tags="" modified="201312161627" created="201312161622" twine-position="1233,129" modifier="twee">&lt;h1&gt;Project Scope&lt;/h1&gt;\nInitially the game will simply be a demo with a series of encounters. Full release will be episodic \n&lt;h2&gt;Number of locations&lt;/h2&gt;\n1 Initially. 8-10 for full release\n&lt;h2&gt;Number of levels&lt;/h2&gt;\nAt least 10 per location, up to 100 per episode\n&lt;h2&gt;Number of NPC’s&lt;/h2&gt;\nTBD\n&lt;h2&gt;Number of weapons&lt;/h2&gt;\nOne slot machine for combat, one for skill usage, and one for social interactions. These are all upgraded separately.\n\n[[Prev|Look]] | [[Overview|Overview]]</div><div tiddler="CharArt" tags="" modified="201312171013" created="201312170956" twine-position="753,988" modifier="twee">&lt;h1&gt;Characters&lt;/h1&gt;\nTODO\n\n[[Prev|Style]] | [[Game Art|Art]] | [[Next|EnvArt]]</div><div tiddler="Schedule" tags="" modified="201312181414" created="201312170956" twine-position="619,1216" modifier="twee">&lt;h1&gt;Schedule&lt;/h1&gt;\n\n&lt;h3&gt;Trello Board&lt;/h3&gt;\nFor project status see:\nhttps://trello.com/b/E6ndjdK2/drodds\n\n&lt;h3&gt;Time estimates:&lt;/h3&gt;\n&lt;b&gt;Milestone #1: Prototype&lt;/b&gt;\n	-Flesh out GDD: 3.0\n&lt;b&gt;Milestone #2: Pre-Alpha&lt;/b&gt;\n&lt;b&gt;Milestone #3: Alpha&lt;/b&gt;\n&lt;b&gt;Milestone #4: Pre-Beta&lt;/b&gt;\n&lt;b&gt;Milestone #5: Beta&lt;/b&gt;\n&lt;b&gt;Milestone #6: Gold&lt;/b&gt;\n&lt;b&gt;Milestone #7: Launch&lt;/b&gt;\n\n[[Milestones|Milestones]] | [[Management|Management]] | [[Next|Budget]]</div><div tiddler="StoryTitle" tags="" modified="201312161547" created="201312161544" twine-position="10,150" modifier="twee">Dr. Odds</div><div tiddler="Milestones" tags="" modified="201312181316" created="201312181250" twine-position="499,1218" modifier="twee">&lt;h1&gt;Milestones&lt;/h1&gt;\n\n&lt;h3&gt;Milestone #1: Prototype&lt;/h3&gt;\n&lt;h3&gt;Milestone #2: Pre-Alpha&lt;/h3&gt;\n&lt;h3&gt;Milestone #3: Alpha&lt;/h3&gt;\n&lt;h3&gt;Milestone #4: Pre-Beta&lt;/h3&gt;\n&lt;h3&gt;Milestone #5: Beta&lt;/h3&gt;\n&lt;h3&gt;Milestone #6: Gold&lt;/h3&gt;\n&lt;h3&gt;Milestone #7: Launch&lt;/h3&gt;\n\n[[Management|Management]] | [[Next|Schedule]]</div><div tiddler="DrOdds" tags="" modified="201312170841" created="201312170839" twine-position="1604,1009" modifier="twee">&lt;h1&gt;Dr. Odds&lt;/h1&gt;\n&lt;h2&gt;Back story&lt;/h2&gt;\nDr Odds is a mad scientist who lives in his lab on the outskirts of Freeport. The lab is hidden from view and has yet to be detected by the alien invaders. He was working on his plan to take over the Earth and install himself as the supreme ruler of all humanity when the aliens struck. Now he must remove their grip on the planet if he wants to take it for himself.\n\nThrough his observations and experiments, he has discovered a weakness in the technology of The Auditors. These breakthroughs eventually lead to the invention of the Chaos Gun.\n&lt;h2&gt;Personality&lt;/h2&gt;\nDr. Odds is quirky, and slightly insane. His plans are bold, brilliant, and reckless. Sometimes his impulsive nature leads to trouble. He deals with other humans as inferiors, and doesn’t make personal connections.\n&lt;h2&gt;Look&lt;/h2&gt;\n&lt;h3&gt;Physical characteristics&lt;/h3&gt;\nDr Odds has white hair and blue eyes. He usually wears a lab coat, and has multiple variations on it for different circumstances. He usually wears a surgical mask, as the stench of humanity and alienity alike disgust him.\n&lt;h2&gt;Special Abilities&lt;/h2&gt;\nAdvanced intelligence, chaos gun\n&lt;h2&gt;Relevance to game story&lt;/h2&gt;\nProtagonist\n&lt;h2&gt;Relationship to other characters&lt;/h2&gt;\nTreats them as minions at best, completely ignores them at worst\n\n[[Story, Settings, and Characters|Story]] | [[Next|ChaosGun]]</div><div tiddler="AllArt" tags="" modified="201312171013" created="201312170956" twine-position="1256,979" modifier="twee">&lt;h1&gt;Miscellaneous&lt;/h1&gt;\nTODO\n\n[[Prev|CSArt]] | [[Game Art|Art]]</div><div tiddler="HUDMock" tags="Twine.image" modified="201312171419" created="201312171419" twine-position="1478,308" modifier="twee"></div><div tiddler="EqArt" tags="" modified="201312171013" created="201312170956" twine-position="1003,983" modifier="twee">&lt;h1&gt;Equipment&lt;/h1&gt;\nTODO\n\n[[Prev|EnvArt]] | [[Game Art|Art]] | [[Next|CSArt]]</div><div tiddler="DevHW" tags="" modified="201312181224" created="201312170956" twine-position="627,863" modifier="twee">&lt;h1&gt;Development Hardware and Software&lt;/h1&gt;\nAny machine that can run Eclipse and either run a VM or connect to an android device through USB\n\nSome development will also take place on Android Smartphones and Tablets.\n\nThe repository can be found on SVN at https://drodds.googlecode.com/svn\n\n[[Prev|Hardware]] | [[Technical|Technical]] | [[Next|DevStd]]</div><div tiddler="Mechanics" tags="" modified="201312190736" created="201312161631" twine-position="630,252" modifier="twee">&lt;h1&gt;Mechanics&lt;/h1&gt;\n&lt;h3&gt;Chaos Gun&lt;/h3&gt;\nPlayers spin the slots and are rewarded a score based on what symbols show. This score awards the player a certain amount of energy that they can use to activate different abilities. Each ability will have a cost associated with it, and new abilities can be unlocked as the game progresses. Enemies will use a more traditional random number generator and some AI to decide which abilities to use and how powerful they are.\n&lt;h2&gt;Combat&lt;/h2&gt;\nMuch of the game will be combat-based. The player uses their weapon to build up energy. This energy is used to pay for different abilities. The enemies use a similar system, but theirs is done behind the scenes.\n&lt;h2&gt;Economy&lt;/h2&gt;\nThere are two forms of economy. First, there is an action economy. Players build up energy points that they use to perform various actions. This is done through the interface of the slot machine. The second economy is the parts and upgrades economy. A variety items can be found through the course of playing the game. Players use this to upgrade their weapon or themselves. This unlocks new abilities and improves the damage and efficiency of their weapon.\n\n[[Prev|Game]] | [[Gameplay and Mechanics|Gameplay]] | [[Next|Abilities]]</div><div tiddler="Art" tags="" modified="201312161649" created="201312161604" twine-position="343,976" modifier="twee">&lt;h1&gt;Game Art&lt;/h1&gt;\n[[Concept Art|Concepts]]\n[[Style Guides|Style]]\n[[Characters|CharArt]]\n[[Environments|EnvArt]]\n[[Equipment|EqArt]]\n[[Cut scenes|CSArt]]\n[[Miscellaneous|AllArt]]\n\n[[Prev|Technical]] | [[Contents|Contents]] | [[Next|SS]]</div><div tiddler="Help" tags="" modified="201312181218" created="201312170921" twine-position="995,618" modifier="twee">&lt;h1&gt;Help System&lt;/h1&gt;\nThere is a tutorial mission that explains the basics to the player. There will also be a simple help menu that shows some screenshots and gives hints.\n\n[[Prev|SFX]] | [[Interface|Interface]]</div><div tiddler="SFX" tags="" modified="201312170935" created="201312170921" twine-position="870,615" modifier="twee">&lt;h1&gt;Sound Effects&lt;/h1&gt;\nTODO\n\n[[Prev|Music]] | [[Interface|Interface]] | [[Next|Help]]</div><div tiddler="Overview" tags="" modified="201312161627" created="201312161554" twine-position="344,130" modifier="twee">&lt;h1&gt;Game Overview&lt;/h1&gt;\n[[Game Concept|Concept]]\n[[Feature Set|Features]]\n[[Genre|Genre]]\n[[Target Audience|Audience]]\n[[Game Flow|Flow]]\n[[Look and Feel|Look]]\n[[Project Scope|Scope]]\n\n[[Contents|Contents]] | [[Next|Gameplay]]</div><div tiddler="Testing" tags="" modified="201312181415" created="201312170956" twine-position="1116,1211" modifier="twee">&lt;h1&gt;Test Plan&lt;/h1&gt;\nUnit testing will be done while integrating each new feature. Major testing rounds will be done after each milestone.\n\n[[Prev|Localization]] | [[Management|Management]]</div><div tiddler="Visuals" tags="" modified="201312190737" created="201312170921" twine-position="504,620" modifier="twee">&lt;h1&gt;Visual System&lt;/h1&gt;\n&lt;h2&gt;GUI&lt;/h2&gt;\n&lt;h3&gt;Mock&lt;/h3&gt;\n[img[HUDMock]]\n&lt;h3&gt;A. Toolbar&lt;/h3&gt;\nThe toolbar contains all of the controls for the game. It attaches to the left hand side of the screen in landscape mode and the bottom of the screen in portrait. You can find a list of controls with descriptions here:\n[[Tools and Controls|Tools]]\n\n&lt;h3&gt;B. Reels&lt;/h3&gt;\nThese are the reels that represent the Chaos Gun. As players upgrade, more reels and positions will be added which allows for higher spin results. Some positions represent power being routed, others have special abilities. Here is a list of all possible positions:\n[[Reel Positions|Positions]]\n\n&lt;h3&gt;C. Portraits&lt;/h3&gt;\nA portrait of Dr. Odds, and the enemy or obstacle he is currently facing will be displayed here. You can find a list of all the portraits here:\n[[Character Art|CharArt]]\n\n&lt;h3&gt;D. Status&lt;/h3&gt;\nThis is the status box. It displays the health of the player and their enemy. It will also display any pertinent statistics about both parties, including armor, tech level, etc.\n\n&lt;h3&gt;Rendering System&lt;/h3&gt;\n2D, canvas drawing to start with possible conversion to OpenGL ES 2.0 at some point\n\n[[Interface|Interface]] | [[Next|Controls]]</div><div tiddler="CopyInfo" tags="" modified="201312161654" created="201312161553" twine-position="200,6" modifier="twee">Copyright Information\nThis work is the intellectual property of Robert J Miller III. Unauthorized use of this document or any materials contained herein is forbidden. Please don’t plagiarize me, I will hunt you down.\n\n\nVersion history\nTime	            Author	    Changes\n9/18/13, 12:42 pm	Rob Miller	Initial Creation\n12/16/13, 3:53 pm Rob Miller  Transfer to HTML\n\n[[Back to Title|Start]]\n</div><div tiddler="Plot" tags="cutscenes" modified="201312200745" created="201312170832" twine-position="505,373" modifier="twee">&lt;h1&gt;Plot&lt;/h1&gt;\n&lt;h3&gt;Back story&lt;/h3&gt;\nAliens, called The Auditors, have invaded earth and are attempting to impose their rule. Normal weapons have proven useless against them, but one scientist, Dr. Odds, has uncovered their weakness, unbridled pandemonium. Their technology must be disrupted in order for the aliens to become vulnerable. Using his Chaos Gun, the doctor is ridding the Earth of these monsters of order.\n&lt;h3&gt;Plot Elements&lt;/h3&gt;\nThe plot consists of the doctor fighting against a these aliens in a variety of environments. He will be confronted with a variety of alien technology that he will use his weapon to overcome. Due to the nature of his creation, the weapon doesn’t behave how it is supposed to, which leads to interesting challenges for the player. \n&lt;h3&gt;Game Progression&lt;/h3&gt;\nAs the game progresses, the aliens the players face will be more difficult to deal with. They will begin developing technology to counter the Chaos Gun, which will require it to be upgraded. The basic gameplay will be the same, but players will need to learn how to configure their weapon.\n&lt;h3&gt;Cut Scenes&lt;/h3&gt;\nCut scenes are told in the form of a comic. There will be no voice acting involved.\n[[Introduction|Intro1]]\n[[End of tutorial|Outro1]]\n[[It works!|Outro2]]\n\n[[Story, Settings, and Characters|Story]] | [[Next|World]]</div><div tiddler="Management" tags="" modified="201312181314" created="201312161607" twine-position="343,1219" modifier="twee">&lt;h1&gt;Management&lt;/h1&gt;\n[[Milestones|Milestones]]\n[[Schedule|Schedule]]\n[[Budget|Budget]]\n[[Risk Analysis|Risk]]\n[[Localization Plan|Localization]]\n[[Test Plan|Testing]]\n\n[[Prev|SS]] | [[Contents|Contents]] | [[Next|Appendicies]]</div><div tiddler="Network" tags="" modified="201312181233" created="201312170956" twine-position="1006,859" modifier="twee">&lt;h1&gt;Networking&lt;/h1&gt;\nNo networking is to be supported at this time.\n\n[[Prev|Engine]] | [[Technical|Technical]] | [[Next|Scripting]]</div><div tiddler="L10" tags="" modified="201312171021" created="201312170847" twine-position="1649,499" modifier="twee">&lt;h1&gt;Level #10&lt;/h1&gt;\nTODO\n\n[[Prev|L9]] | [[Levels|Levels]]</div><div tiddler="SplashScr" tags="" modified="201312161639" created="201312161635" twine-position="1882,160" modifier="twee">&lt;h1&gt;Splash Screen&lt;/h1&gt;\nThis screen boots up with the main menu background. Some UFOs fly by and fire at the ruins. Then, after 2-3 seconds, the main menu fades in.\n\n[[Screen Flow|Screens]] | [[Next|MainMenuScr]]</div><div tiddler="Engine" tags="" modified="201312181233" created="201312170956" twine-position="878,859" modifier="twee">&lt;h1&gt;Game Engine&lt;/h1&gt;\nThis game uses a custom engine that runs on its own thread.\n\n[[Prev|DevStd]] | [[Technical|Technical]] | [[Next|Network]]</div><div tiddler="Risk" tags="" modified="201312181415" created="201312170956" twine-position="867,1216" modifier="twee">&lt;h1&gt;Risk Analysis&lt;/h1&gt;\nNo money, no risk\n\n[[Prev|Budget]] | [[Management|Management]] | [[Next|Localization]]</div><div tiddler="CSArt" tags="" modified="201312171013" created="201312170956" twine-position="1133,980" modifier="twee">&lt;h1&gt;Cut scenes&lt;/h1&gt;\nTODO\n\n[[Prev|EqArt]] | [[Game Art|Art]] | [[Next|AllArt]]</div><div tiddler="Technical" tags="" modified="201312161649" created="201312161602" twine-position="344,854" modifier="twee">&lt;h1&gt;Technical&lt;/h1&gt;\n[[Target Hardware|Hardware]]\n[[Development Hardware and Software|DevHW]]\n[[Development Procedures and Standards|DevStd]]\n[[Game Engine|Engine]]\n[[Networking|Network]]\n[[Scripting|Scripting]]\n\n[[Prev|AI]] | [[Contents|Contents]] | [[Next|Art]]</div><div tiddler="Game" tags="" modified="201312190733" created="201312161629" twine-position="510,252" modifier="twee">&lt;h1&gt;Gameplay&lt;/h1&gt;\n&lt;h2&gt;Game Progression&lt;/h2&gt;\nPlayers start from a main menu. They are shown a brief cutscene outlining the plot. From there, they go through a series of encounters (combat and noncombat) that are resolved by spinning the slot reels then making decisions about what to do. The game wraps up aboard the alien command ship.\n\n&lt;h2&gt;Mission/challenge Structure&lt;/h2&gt;\nThe challenges are sequential. Some encounters will have multiple outcomes that cause branches in the story.\n\n&lt;h2&gt;Objectives&lt;/h2&gt;\nThe objective is to save the earth from the evil alien invaders.\n\n&lt;h2&gt;Play Flow&lt;/h2&gt;\nPace can be as rapid or slow as the player desires. Their choices will open new roads that suit their play style.\n\n[[Gameplay and Mechanics|Gameplay]] | [[Next|Mechanics]]</div><div tiddler="Interface" tags="" modified="201312170934" created="201312161600" twine-position="345,612" modifier="twee">&lt;h1&gt;Interface&lt;/h1&gt;\n[[Visual System|Visuals]]\n[[Control System|Controls]]\n[[Music|Music]]\n[[Sound Effects|SFX]]\n[[Help System|Help]]\n\n[[Prev|Levels]] | [[Contents|Contents]] | [[Next|AI]]</div><div tiddler="Appendicies" tags="" modified="201312161651" created="201312161608" twine-position="341,1340" modifier="twee">&lt;h1&gt;Appendicies&lt;/h1&gt;\n[[Appendix A: Art List|A]]\n\n[[Prev|Management]] | [[Contents|Contents]]</div><div tiddler="Look" tags="" modified="201312181427" created="201312161622" twine-position="1113,129" modifier="twee">&lt;h1&gt;Look and Feel&lt;/h1&gt;\nThe whole game will have a sci-fi look and feel. The graphics will be comic, but not cartoony. Animations should be crisp. All assets will be drawn using a 128 color palette\n\n[[Prev|Flow]] | [[Overview|Overview]] | [[Next|Scope]]</div><div tiddler="Items" tags="" modified="201312191111" created="201312190737" twine-position="874,250" modifier="twee">&lt;h1&gt;Items and Upgrades&lt;/h1&gt;\n&lt;h2&gt;Consumables&lt;/h2&gt;\n&lt;h3&gt;Morphine&lt;/h3&gt;\nEffect: Increases health by 40. Also grants a temporary Toughness increase of 20%\nDuration: Remainder of combat\n&lt;h3&gt;Spare Battery&lt;/h3&gt;\nEffect: Can only be used with an empty energy pool. Adds 50 energy to the player's pool\n&lt;h3&gt;Adrenaline&lt;/h3&gt;\nEffect: Increases offensive power and speed by 20%\nDuration: Remainder of combat\n&lt;h3&gt;Ephedrine&lt;/h3&gt;\nEffect: Increases intelligence by 40%\nDuration: Remainder of combat\n&lt;h2&gt;Upgrades&lt;/h2&gt;\nThe player is rewarded parts for completing encounters. They use these parts to upgrade the Chaos Gun\n&lt;h3&gt;Purchase Ability&lt;/h3&gt;\nFreeze Ray = 10 parts\nPsychic Attack = 15 parts\nShrink Ray = 20 parts\nDisintigration Ray = 40 parts\nOffensive Boost = 30 parts\nSpeed Boost = 50 parts\n&lt;h3&gt;Stat Boosts&lt;/h3&gt;\nEach of these stat boosts can be purchased up to 5 times at increasing cost.\n1st = 5 parts\n2nd = 10 parts\n3rd = 20 parts\n4th = 30 parts\n5th = 50 parts\n&lt;b&gt;Offense&lt;/b&gt;\n+20%\n&lt;b&gt;Speed&lt;/b&gt;\n+10%\n&lt;b&gt;Toughness&lt;/b&gt;\n+10%\n&lt;b&gt;Resistance&lt;/b&gt;\n+20%\n&lt;b&gt;Intelligence&lt;/b&gt;\n+20%\n\n[[Prev|Abilities]] | [[Gameplay and Mechanics|Gameplay]] | [[Next|Positions]]</div><div tiddler="Budget" tags="" modified="201312181414" created="201312170956" twine-position="743,1214" modifier="twee">&lt;h1&gt;Budget&lt;/h1&gt;\nThere is no budget. Do everything for free.\n\nIf it looks like it's going to sell, we'll work out a marketing budget in the future.\n\n[[Prev|Schedule]] | [[Management|Management]] | [[Next|Risk]]</div><div tiddler="Practices" tags="" modified="201312171024" created="201312171021" twine-position="9,422" modifier="twee">Best Practices for this GDD:\n\n1) h1 tag for titles\n2) h3 tag for subtitles\n3) one empty line before Prev|Back|Next\n4) must use a tag for all groups of nouns\n5) all links must link back to source\n</div><div tiddler="MainMenuScr" tags="" modified="201312161642" created="201312161635" twine-position="1751,161" modifier="twee">&lt;h1&gt;Main Menu Screen&lt;/h1&gt;\n[img[MainMenuMock]]\n\n&lt;h3&gt;Flow&lt;/h3&gt;\nPlay-&gt;Start the game\nOptions-&gt;[[Options Screen|OptionsScr]]\nExit-&gt;Close app\n\n[[Prev|SplashScr]] | [[Gameplay and Mechanics|Gameplay]] | [[Next|OptionsScr]]\n</div><div tiddler="Concept" tags="" modified="201312161620" created="201312161610" twine-position="507,127" modifier="twee">&lt;h1&gt;Game Concept&lt;/h1&gt;\nDr. Odds is a sci-fi roleplaying game for Android. It uses a slot machine for all interactions within the game. It will be single player. There will be a story, but most of the focus will be on tweaking and upgrading the slot machines.\n\n[[Overview|Overview]] | [[Next|Features]]</div><div tiddler="OptionsScr" tags="" modified="201312161644" created="201312161635" twine-position="1617,160" modifier="twee">&lt;h1&gt;Options Screen&lt;/h1&gt;\n[img[OptionsMock]]\n\n&lt;h3&gt;Flow&lt;/h3&gt;\nSlot Speed-&gt;Increase/decrease speed of slot reels\nVolume-&gt;Music-&gt;Increase/decrease music volume\n		  SFX-&gt;Increase/decrease sound effects volume\nClear Save-&gt;Erase all saved data\nFree Spin-&gt;Enter free spin mode\nMain Menu-&gt;[[Main Menu Screen|MainMenuScr]]\n\n[[Prev|MainMenuScr]] | [[Gameplay and Mechanics|Gameplay]]</div><div tiddler="L4" tags="" modified="201312171020" created="201312170847" twine-position="876,493" modifier="twee">&lt;h1&gt;Level #4&lt;/h1&gt;\nTODO\n\n[[Prev|L3]] | [[Levels|Levels]] | [[Next|L5]]</div><div tiddler="Screens" tags="screens" modified="201312170902" created="201312161631" twine-position="1236,250" modifier="twee">&lt;h1&gt;Screen Flow&lt;/h1&gt;\n[[Splash Screen|SplashScr]]\n[[Main Menu Screen|MainMenuScr]]\n[[Options Screen|OptionsScr]]\n\n[[Prev|Mechanics]] | [[Gameplay and Mechanics|Gameplay]]</div><div tiddler="StoryAuthor" tags="" modified="201312161547" created="201312161544" twine-position="10,290" modifier="twee">Robert J Miller</div><div tiddler="Contents" tags="" modified="201312161653" created="201312161550" twine-position="164,588" modifier="twee">&lt;h1&gt;Contents&lt;/h1&gt;\n[[Game Overview|Overview]]\n[[Gameplay and Mechanics|Gameplay]]\n[[Story, Settings, Characters|Story]]\n[[Levels|Levels]]\n[[Interface|Interface]]\n[[Artificial Intelligence|AI]]\n[[Technical|Technical]]\n[[Game Art|Art]]\n[[Secondary Software|SS]]\n[[Management|Management]]\n[[Appendicies|Appendicies]]\n\n[[Back to Title|Start]]</div><div tiddler="Intro1" tags="" modified="201312170919" created="201312170858" twine-position="2302,438" modifier="twee">&lt;h1&gt;Introduction&lt;/h1&gt;\n&lt;h3&gt;Actors&lt;/h3&gt;\nDr. Odds\n&lt;h3&gt;Description&lt;/h3&gt;\nDr. Odds has just finished inventing the Chaos Gun. The last panel explains that he will now be testing it.\n&lt;h3&gt;Storyboard&lt;/h3&gt;\nTODO\n&lt;h3&gt;Script&lt;/h3&gt;\n&lt;b&gt;Panel 1-&lt;/b&gt;\n&lt;i&gt;Dr Odds is in his laboratory, with his back to the camera staring out of a window as the aliens are attacking a nearby city.&lt;/i&gt;\nDr Odds (speaking into a recorder)- “Day 326, 0800 hours of the attack by The Auditors: My lab remains undiscovered, but Freeport has come under siege.”\n&lt;b&gt;Panel 2- &lt;/b&gt;\n&lt;i&gt;Dr Odds turns and begins walking away from the window&lt;/i&gt;\nDr Odds (speaking into a recorder)- “As yet, I am the only one who has found a weakness in these invaders”\n&lt;b&gt;Panel 3-&lt;/b&gt;\n&lt;i&gt;Dr Odds reaches a staircase and descends&lt;/i&gt;\nDr Odds (speaking into a recorder)- “They thrive on order, and are trying to impose their own on us. They are rigorously scientific, and their technology is far more advanced than ours.”\n&lt;b&gt;Panel 4-&lt;/b&gt;\n&lt;i&gt;Dr Odds enters a tunnel with an imposing-looking door at the end&lt;/i&gt;\nDr Odds (speaking into a recorder)- “We are trying to fight order with order. I think it’s time we gave them a little disorder”\n&lt;b&gt;Panel 5-&lt;/b&gt;\n&lt;i&gt;The doctor has entered the vault. In the background you can see the chaos gun on a pedestal&lt;/i&gt;\nDr Odds (speaking into a recorder)- “My Chaos Gun is finally ready for testing”\n\n&lt;h3&gt;Referenced by:&lt;/h3&gt;\n[[Level #1|L1]]\n\n[[Plot|Plot]] | [[Next|Outro1]]</div><div tiddler="Story" tags="" modified="201312161648" created="201312161557" twine-position="345,372" modifier="twee">&lt;h1&gt;Story, Settings, Characters&lt;/h1&gt;\n[[Plot|Plot]]\n[[Game World|World]]\n[[Characters|Characters]]\n\n[[Prev|Gameplay]] | [[Contents|Contents]] | [[Next|Levels]]</div><div tiddler="Support" tags="" modified="201312170955" created="201312170953" twine-position="751,741" modifier="twee">&lt;h1&gt;Support AI&lt;/h1&gt;\nTODO\n[[Prev|Friends]] | [[Artificial Intelligence|AI]]</div><div tiddler="Concepts" tags="" modified="201312171013" created="201312170956" twine-position="505,988" modifier="twee">&lt;h1&gt;Concept Art&lt;/h1&gt;\nTODO\n\n[[Game Art|Art]] | [[Next|Style]]</div><div tiddler="Start" tags="" modified="201312161653" created="201312161544" twine-position="10,10" modifier="twee">Dr. Odds\nGame Design Document\n\n\nWritten by,\nRobert Miller\n\n[[Copyright Information and Version History|CopyInfo]]\n\n[[Table of Contents|Contents]]</div><div tiddler="Music" tags="" modified="201312170934" created="201312170921" twine-position="750,616" modifier="twee">&lt;h1&gt;Music&lt;/h1&gt;\nTODO\n\n[[Prev|Controls]] | [[Interface|Interface]] | [[Next|SFX]]</div><div tiddler="All Screens" tags="screens" modified="201312170902" created="201312161636" twine-position="1754,29" modifier="twee">[[OptionsScr]]\n[[MainMenuScr]]\n[[SplashScr]]</div><div tiddler="DevStd" tags="" modified="201312181232" created="201312170956" twine-position="751,864" modifier="twee">&lt;h1&gt;Development Procedures and Standards&lt;/h1&gt;\n&lt;h3&gt;Language&lt;/h3&gt;\nThe primary coding language shall be Java 7.0. Any scripting will be done with Python 3.0\n\n&lt;h3&gt;IDE&lt;/h3&gt;\nEclipse and AIDE are the only acceptable development environments.\n\n&lt;h3&gt;Standards&lt;/h3&gt;\n1) One space will be left before and after each set of parenthesis (this does not apply to nested parenthesis), i.e.:\n	&lt;i&gt; if ((...)) {&lt;/i&gt;\n2) For any control structure requiring a curly brace, the opening brace shall be put on the same line as the declaration and the closing brace shall be put on its own line, i.e.:\n	&lt;i&gt;if (...) {\n	}&lt;/i&gt;\n3) Any imports of packages not in use will be deleted promptly.\n4) Function and variable names will be in camel case (i.e. aBooleanVar).\n5) Class names will likewise be camel case, but will begin with an uppercase character (i.e. MyClass)\n6) Any static final variable, enum value, or constant shall be named in all caps (i.e. MY_CONST)\n7) Folder and file names may not contain spaces\n\n&lt;h3&gt;Images&lt;/h3&gt;\nImages created for Dr. Odds shall be done using our custom palette, and shall be run through the exportToAndroid.jsx script\n\n[[Prev|DevHW]] | [[Technical|Technical]] | [[Next|Engine]]</div><div tiddler="ChaosGun" tags="" modified="201312170843" created="201312170839" twine-position="1751,1004" modifier="twee">&lt;h1&gt;Chaos Gun&lt;/h1&gt;\n&lt;h2&gt;Back story&lt;/h2&gt;\nThis is the invention of Dr Odds. It was specifically designed to interfere with alien technology. Nobody is entirely sure how it works, not even the doctor himself.\n&lt;h2&gt;Personality&lt;/h2&gt;\nDue to the nature of the technology being used, it is not the most reliable of weapons. Its effectiveness ranges from detrimental to absolute power. \n&lt;h2&gt;Look&lt;/h2&gt;\n&lt;h3&gt;Physical characteristics&lt;/h3&gt;\nThis gun is oversized, overengineered, and looks like it is from 1000 years in the future. The bulk of it comes from its Chaos Drive, that spins before it is fired and resembles a slot machine\n&lt;h2&gt;Special Abilities&lt;/h2&gt;\nInterferes with alien technology. Capable of leveling buildings at its peak performance\n&lt;h2&gt;Relevance to game story&lt;/h2&gt;\nProtagonist’s weapon\n&lt;h2&gt;Relationship to other characters&lt;/h2&gt;\nN/A\n\n[[Prev|DrOdds]] | [[Story, Settings, and Characters|Story]] | [[Next|Hovercraft]]</div><div tiddler="Localization" tags="" modified="201312181415" created="201312170956" twine-position="994,1211" modifier="twee">&lt;h1&gt;Localization Plan&lt;/h1&gt;\nWill be English (U.S.) only\n\n[[Prev|Risk]] | [[Management|Management]] | [[Next|Testing]]</div><div tiddler="EnvArt" tags="" modified="201312171013" created="201312170956" twine-position="880,982" modifier="twee">&lt;h1&gt;Environments&lt;/h1&gt;\nTODO\n\n[[Prev|CharArt]] | [[Game Art|Art]] | [[Next|EqArt]]</div><div tiddler="Levels" tags="" modified="201312161648" created="201312161558" twine-position="344,492" modifier="twee">&lt;h1&gt;Levels&lt;/h1&gt;\n[[Level #1|L1]]\n[[Level #2|L2]]\n[[Level #3|L3]]\n[[Level #4|L4]]\n[[Level #5|L5]]\n[[Level #6|L6]]\n[[Level #7|L7]]\n[[Level #8|L8]]\n[[Level #9|L9]]\n[[Level #10|L10]]\n\n[[Prev|Story]] | [[Contents|Contents]] | [[Next|Interface]]</div><div tiddler="Characters" tags="characters" modified="201312191415" created="201312170832" twine-position="750,370" modifier="twee">&lt;h1&gt;Characters&lt;/h1&gt;\n[[Dr. Odds|DrOdds]]\n[[Chaos Gun|ChaosGun]]\n[[Hovercraft|Hovercraft]]\n[[Enemy: Officer|Officer]]\n[[Enemy: Agent|Agent]]\n[[Enemy: Examiner|Examiner]]\n[[Enemy: Special Agent|SpecAgent]]\n[[Enemy: Advocate|Advocate]]\n[[Enemy: Counsel Member|Counsel]]\n[[Enemy: Deputy Chief|Deputy]]\n[[Enemy: Chief|Chief]]\n[[Enemy: Commissioner|Commissioner]]\n\n[[Prev|World]] | [[Story, Settings, and Characters|Story]]</div><div tiddler="Gameplay" tags="" modified="201312191000" created="201312161555" twine-position="346,250" modifier="twee">&lt;h1&gt;Gameplay and Mechanics&lt;/h1&gt;\n[[Gameplay|Game]]\n[[Mechanics|Mechanics]]\n[[Abilities|Abilities]]\n[[Items and Upgrades|Items]]\n[[Reel Positions|Positions]]\n[[Tools and Controls|Tools]]\n[[Screen Flow|Screens]]\n\n[[Prev|Overview]] | [[Contents|Contents]] | [[Next|Story]]</div><div tiddler="Positions" tags="" modified="201312191407" created="201312190737" twine-position="995,249" modifier="twee">&lt;h1&gt;Reel Positions&lt;/h1&gt;\n&lt;h2&gt;Combat&lt;/h2&gt;\n&lt;h3&gt;Regular&lt;/h3&gt;\n&lt;b&gt;\nBlank\nSingle Bar\nDouble Bar\nTriple Bar\nGear\nExplosion\n&lt;/b&gt;\n&lt;h3&gt;Special&lt;/h3&gt;\n&lt;b&gt;\nWild (Lightning Bolt)\n&lt;/b&gt;\nCounts as anything besides a Bonus\n&lt;b&gt;\nBonus (Dr. Odds)\n&lt;/b&gt;\n&lt;h3&gt;Payouts&lt;/h3&gt;\n&lt;b&gt;Single&lt;/b&gt;\nBlank: 1\nSingle Bar: 2\nDouble Bar: 4\nTriple Bar: 6\nGear: 15\nExplosion: 25\n\n&lt;b&gt;Double&lt;/b&gt;\nSingle Bar + Any Bar: 4\nDouble Bar + Double or Triple Bar: 8\nTriple Bar + Triple Bar: 12\n\n&lt;b&gt;Triple&lt;/b&gt;\nAny Three Bars: 24\nThree Single Bars: 48\nThree Double Bars: 96\nThree Triple Bars: 216\nThree Gears: 450\nThree Explosions: 625\nThree Wilds: 1000\nThree Bonus: Bonus Game\n\n[[Prev|Items]] | [[Gameplay and Mechanics|Gameplay]] | [[Next|Tools]]</div><div tiddler="Flow" tags="" modified="201312181426" created="201312161622" twine-position="992,129" modifier="twee">&lt;h1&gt;Game Flow&lt;/h1&gt;\nThe game begins at a main menu. Players may choose to start or continue. The story will be told with cutscenes in the form of comics, but these will be used sparingly. After cutscenes, players will see the world of the game. There is no free roaming or platforming element, players will move from encounter to encounter by tapping the location on their screen.\n\n[[Prev|Audience]] | [[Overview|Overview]] | [[Next|Look]]</div><div tiddler="OptionsMock" tags="Twine.image" modified="201312161641" created="201312161641" twine-position="1614,306" modifier="twee"></div><div tiddler="Controls" tags="" modified="201312181217" created="201312170921" twine-position="629,618" modifier="twee">&lt;h1&gt;Control System&lt;/h1&gt;\nControls will be entirely touch-based. For the most part, the controls will consist of buttons in the toolbar (see [[Visuals|Visuals]]). Navigation around the map will also be touch-based, and moving to a new location will require a simple tap.\n\n[[Prev|Visuals]] | [[Interface|Interface]] | [[Next|Music]]</div><div tiddler="World" tags="locations" modified="201312170903" created="201312170832" twine-position="629,374" modifier="twee">&lt;h1&gt;Game World&lt;/h1&gt;\n&lt;h3&gt;General look and feel of world&lt;h3&gt;\nSettings range from post-apocalyptic ruins to cities that have newly come under attack to alien spaceships.\n\n&lt;h3&gt;Locations&lt;/h3&gt;\n[[Freeport|Freeport]]\n\n\n[[Prev|Story]] | [[Story, Settings, and Characters|Story]] | [[Characters|Characters]]</div><div tiddler="Scripting" tags="" modified="201312181233" created="201312170956" twine-position="1136,856" modifier="twee">&lt;h1&gt;Scripting&lt;/h1&gt;\nNo scripting is needed at this time. If any future scripting is required it will be done with Python 3.0\n\n[[Prev|Network]] | [[Technical|Technical]]</div><div tiddler="Features" tags="" modified="201312181425" created="201312161610" twine-position="630,130" modifier="twee">&lt;h1&gt;Feature Set&lt;/h1&gt;\n&lt;h3&gt;Upgrade System for Chaos Gun&lt;/h3&gt;\nIncrease number of reels\nIncrease number of paylines\nChange damage type\nChange frequency of special positions\n\n&lt;h3&gt;Different encounter types&lt;/h3&gt;\nDoctor vs Enemy\nDoctor vs Machine\nDoctor vs Inanimate Object\nBreaking and Entering\nHacking\n\n&lt;h3&gt;Inventory System&lt;/h3&gt;\nWill be usable during encounters, but will take a turn to use. Example items include:\nHealth boosts\nAccuracy boosts\nDamage boosts\nSpare weapon battery\n\n&lt;h3&gt; Free Spin Mode&lt;/h3&gt;\nWill be an encounter that can be accessed through the options menu. The player gets to spin as many times as they want against a &quot;practice dummy&quot;. Stats such as average damage, total damage, and max/min damage will be listed on exit.\n\n\n[[Prev|Concept]] | [[Overview|Overview]] | [[Next|Genre]]</div><div tiddler="SS" tags="" modified="201312161650" created="201312161606" twine-position="343,1096" modifier="twee">&lt;h1&gt;Secondary Software&lt;/h1&gt;\nCurrently none will be needed. Will update as necessary.\n\n[[Prev|Art]] | [[Contents|Contents]] | [[Next|Management]]</div><div tiddler="AllCutscenes" tags="cutscenes" modified="201312170859" created="201312170858" twine-position="2371,302" modifier="twee">[[Intro1]]\n[[Outro1]]</div><div tiddler="AllLocations" tags="locations" modified="201312170903" created="201312170835" twine-position="1876,485" modifier="twee">[[Freeport]]</div><div tiddler="AllCharacters" tags="characters" modified="201312170903" created="201312170838" twine-position="1748,868" modifier="twee">[[DrOdds]]\n[[ChaosGun]]\n[[Hovercraft]]</div><div tiddler="Hovercraft" tags="" modified="201312170846" created="201312170839" twine-position="1893,1014" modifier="twee">&lt;h1&gt;Hovercraft&lt;/h1&gt;\n&lt;h2&gt;Back story&lt;/h2&gt;\nThis is Dr. Odds’s personal transportation vehicle. It floats in the air, and is capable of extremely high speeds and maneuverability.\n&lt;h2&gt;Personality&lt;/h2&gt;\nN/A\n&lt;h2&gt;Look&lt;/h2&gt;\n&lt;h3&gt;Physical characteristics&lt;/h3&gt;\nEssentially, it’s just a metallic sphere that uses a mysterious propulsion method.\n&lt;h2&gt;Special Abilities&lt;/h2&gt;\nPerfect flight maneuverability, Mach 3 speeds, life support system for high atmosphere orbiting.\n&lt;h2&gt;Relevance to game story&lt;/h2&gt;\nProtagonist’s vehicle\n&lt;h2&gt;Relationship to other characters&lt;/h2&gt;\nN/A\n\n[[Prev|ChaosGun]] | [[Story, Settings, and Characters|Story]]</div><div tiddler="Enemies" tags="" modified="201312181220" created="201312170953" twine-position="504,742" modifier="twee">&lt;h1&gt;Enemy AI&lt;/h1&gt;\nEnemies will use the same energy pool system as the player, but their abilities and energy availability will be chosen by a random number generator. More advanced AI will be used for boss encounters, but this will likely be limited to ability rotation.\n\n[[Artificial Intelligence|AI]] | [[Next|Friends]]</div><div tiddler="Genre" tags="" modified="201312181425" created="201312161616" twine-position="750,129" modifier="twee">&lt;h1&gt;Genre&lt;/h1&gt;\nMobile Sci-Fi Slot-Based RPG\n\n[[Prev|Features]] | [[Overview|Overview]] | [[Next|Audience]]</div><div tiddler="Friends" tags="" modified="201312181220" created="201312170953" twine-position="626,741" modifier="twee">&lt;h1&gt;Friendly Characters&lt;/h1&gt;\nTODO\n\n[[Prev|Enemies]] | [[Artificial Intelligence|AI]] | [[Next|Support]]</div><div tiddler="A" tags="" modified="201312171018" created="201312170956" twine-position="501,1343" modifier="twee">&lt;h1&gt;Appendix A: Art List&lt;/h1&gt;\nTODO\n\n[[Appendicies|Appendicies]]</div><div tiddler="AI" tags="" modified="201312161649" created="201312161601" twine-position="344,734" modifier="twee">&lt;h1&gt;Artificial Intelligence&lt;/h1&gt;\n[[Enemy AI|Enemies]]\n[[Friendly Characters|Friends]]\n[[Support AI|Support]]\n\n[[Prev|Interface]] | [[Contents|Contents]] | [[Next|Technical]]</div><div tiddler="Freeport" tags="" modified="201312170837" created="201312170836" twine-position="1878,629" modifier="twee">&lt;h1&gt;Freeport&lt;/h1&gt;\n&lt;h3&gt;General Description&lt;/h3&gt;\nThis is the starting city. It has only recently come under attack, so most of the structures are still standing. There will be damage and rubble strewn throughout. The alien force consists of a simple raiding party.\n&lt;h3&gt;Physical Characteristics&lt;/h3&gt;\nFreeport is similar to the island of Manhattan in look. The architecture of this city consists mainly of modern skyscrapers, with industrial areas focused around the waterfront. \n&lt;h3&gt;Levels that use area&lt;/h3&gt;\nThe first episode takes place in this city\n\n[[Game World|World]]</div><div tiddler="L6" tags="" modified="201312171020" created="201312170847" twine-position="1126,495" modifier="twee">&lt;h1&gt;Level #6&lt;/h1&gt;\nTODO\n\n[[Prev|L5]] | [[Levels|Levels]] | [[Next|L7]]</div><div tiddler="L7" tags="" modified="201312171020" created="201312170847" twine-position="1255,494" modifier="twee">&lt;h1&gt;Level #7&lt;/h1&gt;\nTODO\n\n[[Prev|L6]] | [[Levels|Levels]] | [[Next|L8]]</div><div tiddler="Audience" tags="" modified="201312161626" created="201312161622" twine-position="871,130" modifier="twee">&lt;h1&gt;Target Audience&lt;/h1&gt;\nAll ages. Casual-Moderate gamers\n\n[[Prev|Genre]] | [[Overview|Overview]] | [[Next|Flow]]</div><div tiddler="L5" tags="" modified="201312171020" created="201312170847" twine-position="1000,491" modifier="twee">&lt;h1&gt;Level #5&lt;/h1&gt;\nTODO\n\n[[Prev|L4]] | [[Levels|Levels]] | [[Next|L6]]</div><div tiddler="L2" tags="" modified="201312200743" created="201312170847" twine-position="629,496" modifier="twee">&lt;h1&gt;Level #2&lt;/h1&gt;\n&lt;h3&gt;Synopsis&lt;/h3&gt;\nDr. Odds parks his hovercraft on the outskirts of town and begins heading toward the center. The first enemy he encounters is a simple officer\n&lt;h3&gt;Introductory Material&lt;/h3&gt;\nNone at this time\n&lt;h3&gt;Objectives&lt;/h3&gt;\nAnnihilate the officer, and prove the effectiveness of the Chaos Gun\n&lt;h3&gt;Physical Description&lt;/h3&gt;\nTakes place in the suburbs, outdoors, at night.\n&lt;h3&gt;Level Walkthrough&lt;/h3&gt;\nThe officer is the lowest rank in the alien army. The player should have no trouble dispatching them, but this is their first opportunity to fight a live opponent. The goal is for them to experience damage and get their first parts for an upgrade.\n&lt;h3&gt;Closing Material&lt;/h3&gt;\n[[It works|Outro2]]\n\n[[Prev|L1]] | [[Levels|Levels]] | [[Next|L3]]</div><div tiddler="L3" tags="" modified="201312201357" created="201312170847" twine-position="754,493" modifier="twee">&lt;h1&gt;Level #3&lt;/h1&gt;\n&lt;h3&gt;Synopsis&lt;/h3&gt;\nThe doctor faces off against two officers.\n&lt;h3&gt;Introductory Material&lt;/h3&gt;\nNone at this time\n&lt;h3&gt;Objectives&lt;/h3&gt;\nLearn how to deal with multiple opponents at once\n&lt;h3&gt;Physical Description&lt;/h3&gt;\nTakes place in the suburbs, outdoors, at night.\n&lt;h3&gt;Level Walkthrough&lt;/h3&gt;\nThere are two options. You can try to bring down one at a time, but you risk the other one getting a high enough energy pool to use a very powerful ability and deal lots of damage. The other option is to alternate your attacks and keep their energy low enough that they can't use their strongest abilities.\n&lt;h3&gt;Closing Material&lt;/h3&gt;\nNone at this time\n\n[[Prev|L2]] | [[Levels|Levels]] | [[Next|L4]]</div><div tiddler="L1" tags="" modified="201312171020" created="201312170847" twine-position="504,497" modifier="twee">&lt;h1&gt;Level #1&lt;/h1&gt;\n&lt;h3&gt;Synopsis&lt;/h3&gt;\nDr. Odds’s test for his Chaos Gun. This level consists of the player firing the weapon at a stationary target that won’t fight back.\n&lt;h3&gt;Introductory Material&lt;/h3&gt;\n[[Introduction|Intro1]]\n&lt;h3&gt;Objectives&lt;/h3&gt;\nDestroy the piece of alien wreckage\n&lt;h3&gt;Physical Description&lt;/h3&gt;\nTakes place in Dr Odds’s lab.\n&lt;h3&gt;Level Walkthrough&lt;/h3&gt;\nKeep spinning the Chaos Gun, and using abilities to inflict damage on the wreckage\n&lt;h3&gt;Closing Material&lt;/h3&gt;\n[[End of tutorial|Outro1]]\n\n[[Levels|Levels]] | [[Next|L2]]</div><div tiddler="L8" tags="" modified="201312171021" created="201312170847" twine-position="1383,495" modifier="twee">&lt;h1&gt;Level #8&lt;/h1&gt;\nTODO\n\n[[Prev|L7]] | [[Levels|Levels]] | [[Next|L9]]</div><div tiddler="L9" tags="" modified="201312171021" created="201312170847" twine-position="1517,497" modifier="twee">&lt;h1&gt;Level #9&lt;/h1&gt;\nTODO\n\n[[Prev|L8]] | [[Levels|Levels]] | [[Next|L10]]</div><div tiddler="Abilities" tags="" modified="201312191057" created="201312190734" twine-position="753,250" modifier="twee">&lt;h1&gt;Abilities&lt;/h1&gt;\nThe player starts the game with the Laser, Strike Fear, Defensive Boost, and Overcharge. To unlock other abilities, they must be purchased from the Upgrade menu.\n&lt;h2&gt;Attacks&lt;/h2&gt;\n&lt;h3&gt;Laser&lt;/h3&gt;\nCost: 10\nDamage: 10 \nResisted by: Armor, Toughness\n&lt;h3&gt;Strike Fear&lt;/h3&gt;\nCost: 10\nDamage: 5\nEffect: Reduces enemy's Speed and Damage\nResisted by: Toughness, Low Intelligence\n&lt;h3&gt;Freeze Ray&lt;/h3&gt;\nCost: 15\nDamage: 15\nResisted by: Toughness, Resistance\n&lt;h3&gt;Psychic Attack&lt;/h3&gt;\nCost: 20\nDamage: 20\nResisted by: High Intelligence\n&lt;h3&gt;Shrink Ray&lt;/h3&gt;\nCost: 30\nEffect: Shrinks the opponent, which lowers their toughness and attack power by 40%\nDuration: 5 rounds\n&lt;h3&gt;Disintegration Ray&lt;/h3&gt;\nCost: 100\nEffect: 50 damage, reduces opponent's Armor and Toughness by 20%\nDuration: Remainder of combat\n&lt;h2&gt;Defense and Support&lt;/h2&gt;\n&lt;h3&gt;Offensive Boost&lt;/h3&gt;\nCost: 100\nEffect: Increases attack damage by 10%\nDuration: Remainder of combat\n&lt;h3&gt;Defensive Boost&lt;/h3&gt;\nCost: 100\nGain: Increases Toughness by 30%\nDuration: Remainder of combat\n&lt;h3&gt;Speed Boost&lt;/h3&gt;\nCost: 100\nGain: Increases Speed by 30%\nDuration: 5 turns\n&lt;h3&gt;Overcharge&lt;/h3&gt;\nCost: Triggered when player gets a spin over 100 points, costs all points for that spin\nEffect: Make a single overcharged attack. This attack will inflict 150% more damage than normal and will not have an associated cost. The player's attack control will be replaced with the Overcharge control for this turn only\n&lt;h2&gt;Breaking and Entering&lt;/h2&gt;\n&lt;h3&gt;Try lock&lt;/h3&gt;\nCost: 20\nEffect: Player attempts to open the lock. With 0 in pool after paying cost, player has a 10% chance of success. This goes up to the player having 200 in their pool and automatically succeeding. If the player has 3 successes in a row on a payline, they also succeed automatically.\n&lt;h3&gt;Automatic Success&lt;/h3&gt;\nFor future spins, this success will stay in place.\n&lt;h3&gt;Instant unlock&lt;/h3&gt;\nVery rare. Instantly clears any lock.\n\n[[Prev|Mechanics]] | [[Gameplay and Mechanics|Gameplay]] | [[Next|Items]]</div><div tiddler="Hardware" tags="" modified="201312181221" created="201312170956" twine-position="503,864" modifier="twee">&lt;h1&gt;Target Hardware&lt;/h1&gt;\nSmartphones and Tablets running Android OS. A wide variety of screen sizes and hardware will be supported. Methodology for this support can be found in [[Test Plan|Testing]]\n\n[[Technical|Technical]] | [[Next|DevHW]]</div><div tiddler="MainMenuMock" tags="Twine.image" modified="201312161641" created="201312161641" twine-position="1746,317" modifier="twee"></div><div tiddler="Tools" tags="" modified="201312191410" created="201312190737" twine-position="1115,249" modifier="twee">&lt;h1&gt;Tools and Controls&lt;/h1&gt;\n&lt;h3&gt;Auto-attack&lt;/h3&gt;\nUse a physical attack against your opponent\n&lt;h3&gt;Use Ability&lt;/h3&gt;\nOpens a menu from which you can choose which ability you'd like to use\n&lt;h3&gt;Spin Reels&lt;/h3&gt;\nSpins the reels of the chaos gun\n&lt;h3&gt;Quit Game&lt;/h3&gt;\nExit to main menu\n&lt;h3&gt;Inventory&lt;/h3&gt;\nOpens the inventory screen\n&lt;h3&gt;Options&lt;/h3&gt;\nOpens the options menu\n\n[[Prev|Positions]] | [[Gameplay and Mechanics|Gameplay]] | [[Next|Screens]]</div></div></body></html>
